鍍金池/ 問答/PHP/ PHP報錯:MySQL server has gone away

PHP報錯:MySQL server has gone away

PHP程序在執(zhí)行批量sql的時候偶爾報錯:MySQL server has gone away。
主要邏輯就是循環(huán)處理20個事務,一個事務大概12個左右的sql,也就是一個流程下來估計有超過240個sql左右,偶爾會報錯,我看了超時時間設置:
clipboard.png
時間是充足的很,可是為什么還是會報錯呢?
還有就是sql不存在大數(shù)據(jù)插入,所以不會是數(shù)據(jù)包超過限制而導致的,網(wǎng)上搜索的大體三種原因:
1、長時間閑置導致連接斷開,這個排除
2、sql語句太長,數(shù)據(jù)包過大導致,這個排除
3、超時時間過短導致,這個排除

想破腦殼都想不到什么原因,測試了整個流程執(zhí)行時間平均不超過10秒 為啥呢?有木有大神指導一下

我用的是PDO方式連接,其實每次執(zhí)行sql之前都有判斷連接是否斷開

clipboard.png

可是好像沒用

回答
編輯回答
挽歌

my.ini 文件,修改這三個值,沒有添加

max_allowed_packet = 500M

wait_timeout=288000

interactive_timeout = 288000
2018年5月23日 17:51
編輯回答
舊城人

mysql連接斷開,原因待定 。。。。 可能執(zhí)行有問題,mysql強制斷開了連接~

2018年2月24日 05:53
編輯回答
六扇門

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

2018年6月6日 22:15
編輯回答
詆毀你

使用 mysqli_ping(); 檢查連接狀態(tài),如果鏈接斷開就重新連接;
$link_status = mysqli_ping($con);
if(false==$link_status)
{

//mysqli_connect

}
不知道這種方法對你是否有用。

試一下先獲取程序異常,再獲取pdo異常,看是不是程序執(zhí)行上有什么錯誤

2017年9月10日 05:34