mysql:Communications link failure解決
mysql: Communications link failure解決
使用Connector/J連接MySQL,程序運行較長時間後就會報以下錯誤:
Communications link failure,The last packet successfully received from the server was *** millisecond ago.The last packet successfully sent to the server was *** millisecond ago。
其中錯誤還會提示你修改wait_timeout或是使用Connector/J的autoReconnect屬性避免該錯誤。
MySQL服務器默認的“wait_timeout”是28800秒即8小時,意味著如果一個連接的空閒時間超過8個小時,MySQL將自動斷開該連接,而連接池卻認為該連接還是有效的(因為並未校驗連接的有效性),當應用申請使用該連接時,就會導致上面的報錯。
解決辦法有兩個:
一是修改my.cnf:
wait_timeout=31536000
interactive_timeout=31536000
將過期時間修改為1年。
二是在連接URL上添加參數:&autoReconnect=true&failOverReadOnly=false