Mysql:mysql5.7長時間不連接失效問題


問題

mysql5數據庫連接超時問題:待機一晚上后,第二天早上第一次登錄總是失敗。

查看日志發現如下錯誤:

 “com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Last packet sent to the server was 0 ms ago.”

問題原因

是由mysql5數據庫的配置引起的。mysql5將其連接的等待時間(wait_timeout)缺省為8小時。

客戶程序中可以這樣來查看其值:

命令:

#查看待機時長(28800 seconds,也就是8小時。)
show global variables like 'wait_timeout';

總結

如果在wait_timeout秒期間內,數據庫連接(java.sql.Connection)一直處於等待狀態(不連接數據庫的狀態),mysql5就將該連接關閉。這時,你的Java應用的連接池仍然合法地持有該連接的引用。當用該連接來進行數據庫操作時,就碰到上述錯誤。這解釋了為什么我的程序第二天不能登錄的問題。

解決

wait_timeout的最大值分別是24天/365天(windows/linux)。

修改mysql5的配置文件“my.ini”(mysql5 installation dir)

#修改文件
vi /etc/my.cnf
#添加一行
wait_timeout=1814400
#保存退出
wq!

測試顯示問題解決了。

 

文章轉載至:https://blog.csdn.net/qq_19590345/article/details/47261469

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM