为了账号安全,请及时绑定邮箱和手机立即绑定

PHP报错:MySQL server has gone away

PHP报错:MySQL server has gone away

PHP
HUH函数 2019-03-07 04:15:11
PHP程序在执行批量sql的时候偶尔报错:MySQL server has gone away。主要逻辑就是循环处理20个事务,一个事务大概12个左右的sql,也就是一个流程下来估计有超过240个sql左右,偶尔会报错,我看了超时时间设置:时间是充足的很,可是为什么还是会报错呢?还有就是sql不存在大数据插入,所以不会是数据包超过限制而导致的,网上搜索的大体三种原因:1、长时间闲置导致连接断开,这个排除2、sql语句太长,数据包过大导致,这个排除3、超时时间过短导致,这个排除 想破脑壳都想不到什么原因,测试了整个流程执行时间平均不超过10秒 为啥呢?有木有大神指导一下 我用的是PDO方式连接,其实每次执行sql之前都有判断连接是否断开 可是好像没用
查看完整描述

4 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

mysql连接断开,原因待定 。。。。 可能执行有问题,mysql强制断开了连接~

查看完整回答
反对 回复 2019-03-18
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

my.ini 文件,修改这三个值,没有添加

max_allowed_packet = 500M

wait_timeout=288000

interactive_timeout = 288000
查看完整回答
反对 回复 2019-03-18
?
三国纷争

TA贡献1804条经验 获得超7个赞

使用 mysqli_ping(); 检查连接状态,如果链接断开就重新连接;
$link_status = mysqli_ping($con);
if(false==$link_status)
{

//mysqli_connect

}
不知道这种方法对你是否有用。

试一下先获取程序异常,再获取pdo异常,看是不是程序执行上有什么错误

查看完整回答
反对 回复 2019-03-18
?
慕斯709654

TA贡献1840条经验 获得超5个赞

你的mysql很忙,在干别的事。

查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 928 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信