PHP报错:MySQL server has gone away

PHP程序在执行批量sql的时候偶尔报错:MySQL server has gone away。
主要逻辑就是循环处理20个事务,一个事务大概12个左右的sql,也就是一个流程下来估计有超过240个sql左右,偶尔会报错,我看了超时时间设置:
https://img.mukewang.com/5c8f532e0001d28402570234.jpg
时间是充足的很,可是为什么还是会报错呢?
还有就是sql不存在大数据插入,所以不会是数据包超过限制而导致的,网上搜索的大体三种原因:
1、长时间闲置导致连接断开,这个排除
2、sql语句太长,数据包过大导致,这个排除
3、超时时间过短导致,这个排除

想破脑壳都想不到什么原因,测试了整个流程执行时间平均不超过10秒 为啥呢?有木有大神指导一下

我用的是PDO方式连接,其实每次执行sql之前都有判断连接是否断开

https://img3.mukewang.com/5c8f533000015adc08000281.jpg

可是好像没用

HUH函数
浏览 929回答 4
4回答

千万里不及你

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

宝慕林4294392

my.ini 文件,修改这三个值,没有添加 max_allowed_packet = 500M wait_timeout=288000 interactive_timeout = 288000

三国纷争

使用 mysqli_ping(); 检查连接状态,如果链接断开就重新连接;$link_status = mysqli_ping($con);if(false==$link_status){ //mysqli_connect }不知道这种方法对你是否有用。 试一下先获取程序异常,再获取pdo异常,看是不是程序执行上有什么错误

慕斯709654

你的mysql很忙,在干别的事。
打开App,查看更多内容
随时随地看视频慕课网APP