解決 MySQL server has gone away

導致 MySQL server has gone away 問題出現的最常見原因是服務超時跟連接已關閉。

默認情況下,當沒有進行任何操作,MySQL 服務會在 8 小時之後關閉,通過在啓動 mysqld 時設置 wait_timeout 變量可以改變這個時間限制,參考 “Server System Variables”

我遇到這個問題是因爲執行 sql 文件時,數據量過大的原因。這時候需要增大執行量,在啓動 mysqld 時設置 max_allowed_packet ,默認是 1M

mysqld --max_allowed_packet=16M

也可以在配置文件如 my.ini 中的 [mysqld] 部分中添加

max_allowed_packet=16M

導致這個問題的原因有很多,比如

  • 正在運行的線程被結束
  • 嘗試在關閉連接後進行查詢操作
  • 客戶端 TCP/IP 連接超時

參考 官方文檔 B.5.2.9 MySQL server has gone away

發佈了50 篇原創文章 · 獲贊 26 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章