首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

解決 MySQL 8 小時閒置連線逾時問題

     編輯:MySQL 資料庫相關知識

問題現象

應用程式與資料庫建立連線後,若超過 8 小時未訪問資料庫,連線會被斷開。再次訪問拋出異常:

Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.io.EOFException
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)
... 

常見但無效的解法

在連線字串加 autoReconnect=true,但這只對 MySQL 4 以前版本有效,最新版無效。

正確解決方法

修改 MySQL 啟動參數。預設 timeout 為 28800 秒(8 小時),增加一個 0 即可延長至 80 小時。

啟動命令範例:

mysqld-nt --default-table-type=innodb --interactive_timeout=288000

或在 my.ini(Windows) / my.cnf(Linux) 中增加:

[mysqld]
interactive_timeout = 288000
wait_timeout = 288000

修改後重啟 MySQL 服務生效。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved