發(fā)生MySQL server has gone away的最常見原因是連接閑置超時,被服務(wù)器中斷連接。默認情況下,服務(wù)器關(guān)閉空閑時間超過8小時的連接,可以通過設(shè)置變量wait_timeout,來改變默認值8小時,同時還需要修改interactive_timeout。
wait_timeout:服務(wù)器關(guān)閉非交互連接之前等待活動的秒數(shù)。
interactive_timeout:服務(wù)器關(guān)閉交互式連接前等待活動的秒數(shù)
MySQL命令行默認是重連的,但有一些應用程序沒有重連的機制,往往會導致執(zhí)行失敗。
導致MySQL server has gone away錯誤的一些其他原因如下:
(1).使用KILL命令或mysqladmin kill命令殺死了正在運行的線程
(2).在關(guān)閉了與服務(wù)器的連接后試圖運行查詢
(3).在客戶端的一側(cè)遇到TCP/IP連接超時錯誤
(4).在服務(wù)器端遇到超時錯誤,而且禁止了客戶端中的自動連接機制
(5).如果向服務(wù)器發(fā)出了不正確或過大的查詢,也會遇到這類問題,如果mysqld收到過大的或者無序的信息包,它會認為客戶端出錯并關(guān)閉連接。如果需要執(zhí)行較大的查詢,則可以通過設(shè)置服務(wù)器的max_allowed_packet
變量,增加查詢限制值,該變量的默認值是1MB。
當前文章:MySQLserverhasgoneaway錯誤的一些常見原因分析-創(chuàng)新互聯(lián)
本文路徑:
http://weahome.cn/article/ijjse.html