MySQL 執(zhí)行腳本時(shí)可能會(huì)遇到以下錯(cuò)誤:
ERROR 2013 (HY000): Lost connection to MySQL server during query
這個(gè)錯(cuò)誤一般是因?yàn)?MySQL 客戶端與服務(wù)器之間的連接斷開了導(dǎo)致的,往往在執(zhí)行長時(shí)間運(yùn)行的 SQL 腳本或大型數(shù)據(jù)庫操作時(shí)出現(xiàn)。出現(xiàn)這個(gè)問題時(shí),可以嘗試以下解決方法:
1. 調(diào)整 MySQL 配置
#在 my.cnf 中加入以下內(nèi)容 [mysqld] wait_timeout = 86400 interactive_timeout = 86400
wait_timeout 默認(rèn)值為 28800 秒,修改為 86400 秒即 24 小時(shí)。interactive_timeout 也加長至 24 小時(shí)。修改完畢,重新啟動(dòng) MySQL 服務(wù)。
2. 減少一次性操作數(shù)據(jù)量
盡量避免一次性操作大量數(shù)據(jù),將大數(shù)據(jù)分批次操作,可以大幅降低執(zhí)行時(shí)間,減少出現(xiàn)斷連的可能性。
3. 調(diào)整客戶端連接參數(shù)
mysql -u用戶名 -p密碼 -h主機(jī)名 --connect_timeout=3600 databasename< /path/to/script.sql
--connect_timeout 可以設(shè)置連接超時(shí)時(shí)間,單位是秒。如果服務(wù)器響應(yīng)太慢,可能連接就超時(shí)了??梢赃m當(dāng)延長該參數(shù),比如上述例子中的 3600 秒。
總之,出現(xiàn) ERROR 2013 (HY000): Lost connection to MySQL server during query 錯(cuò)誤時(shí)往往由于連接斷開引起,可以通過上述措施盡量避免它的發(fā)生。