首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL server has gone away 錯誤原因與兩大解決方案

     編輯:MySQL 資料庫相關知識

常見原因

  1. SQL 語句過長:超過 max_allowed_packet 限制。解決:修改 my.cnf 加大該值。
  2. 連線逾時:程式使用 Singleton 復用連線,兩次操作間隔超過 wait_timeout。解決:加大 wait_timeout,或定期呼叫 mysql_ping() 保持連線。

解決方案一:長時間批量操作(採集、資料轉換)

修改 my.cnf:

wait_timeout=2880000
interactive_timeout = 2880000

若無法改 my.cnf,連線時設定 CLIENT_INTERACTIVE:

sql = "set interactive_timeout=24*3600";
mysql_real_query(...)

解決方案二:單一 SQL 過大或含 BLOB/LongBlob 欄位(如圖片資料)

修改 my.cnf:

max_allowed_packet = 10M

此參數控制通訊緩衝區最大長度,依實際需求調整。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved