mysql自動斷開鏈接的問題,org.springframework.dao.RecoverableDataAccessException


前幾天在剛買的雲服務器上部署了一個 JavaWeb 項目,但是發現每天訪問這個項目時,無論點開哪個模塊都會出現 org.springframework.dao.RecoverableDataAccessException 這個異常,后來網上查閱錯誤原因,發現是mysql默認如果8小時沒有請求的話就會斷開鏈接.

登錄進mysql ,輸入 show global variables like 'wait_timeout';

mysql﹥ show global variables like 'wait_timeout'; 

可以看到下面這個查詢結果

 

可以看到 wait_timeout = 28800, interactive_timeout =28800, 表示 mysql 將在服務器 長達 28800 秒未訪問后斷開連接,28800 即為 8 小時

1)interactive_timeout:
參數含義:服務器關閉交互式連接前等待活動的秒數。交互式客戶端定義為在mysql_real_connect()中使用CLIENT_INTERACTIVE選項的客戶端。
參數默認值:28800秒(8小時)

(2)wait_timeout:
參數含義:服務器關閉非交互連接之前等待活動的秒數。
在線程啟動時,根據全局wait_timeout值或全局interactive_timeout值初始化會話wait_timeout值,取決於客戶端類型(由mysql_real_connect()的連接選項CLIENT_INTERACTIVE定義)。
參數默認值:28800秒(8小時)

解決辦法:

在 /etc/my.cnf 配置文件中加入下面兩行后重啟 mysql 和 tomcat 即可生效

wait_timeout=31536000
interactive_timeout=31536000

其中 windows 的最長未訪問斷開連接時間是 24天, linux 是 365 天,也就是 31536000 秒

配置完后,可以再次輸入 show global variables like 'wait_timeout'; 命令

可以看到修改成功

 

 參考博客:

mysql自動斷開鏈接的問題,org.springframework.dao.RecoverableDataAccessException

 mysql8小時自動斷開連接--已解決

mysql 數據庫連接超過 8 小時失效的解決方案


免責聲明!

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



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