1. 程式人生 > >解決mysql8小時無連線自動斷掉問題

解決mysql8小時無連線自動斷掉問題

windows下開啟my.ini,增加:

interactive_timeout=28800000

wait_timeout=28800000

MySQL是一個小型關係型資料庫管理系統,由於MySQL體積小、速度快、總體擁有成本低,尤其是開放原始碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。

  關於mysql自動關閉服務的現象,可以通過mysql伺服器端程式mysql Administrator調整連線引數。將max_connections max_updates max_questions三項資料調整到很大的數字,那麼你有限的操作將不會導致資料庫服務的終止了在MySQL

資料庫中,如果一個連線8小時沒有請求和操作,就會自動斷開,從而導致一些基於資料庫連線的應用程式,特別是 WEB 應用程式出錯。解決mysql資料庫自動關閉服務三個方法:

方法一:這個引數的名稱是 wait_timeout,其預設值為 28800秒(8小時)。其意義為關閉一個連線之前在這個連線上等到行動的秒數,也就是說,如果一個連線閒置超過這個選項所設定的秒數,MySQL 會主動斷開這個連線。

  修改操作:

linux下開啟/etc/my.cnf,在屬性組mysqld下面新增引數如下:

interactive_timeout=28800000

wait_timeout=28800000

windows下開啟my.ini

,增加:

interactive_timeout=28800000

wait_timeout=28800000

[mysqld]

interactive_timeout=28800000

wait_timeout=28800000

  有實踐表明,沒有辦法把這個值設定成無限大,即永久。因此如果你無法保證你的應用程式必定在設定的秒數內至少有一次操作,那麼最好用第二個方法解決這個問題。

方法二:修改如下JDBC連線的 URL

jdbc:mysql://hostaddress:3306/schemaname?autoReconnect=true

  新增 autoReconnect=true 這個引數,即能解決這個問題。

方法三:配置檔案(

proxool.xml):

mysql

jdbc:mysql://localhost/yourDatebase?useUnicode=true&characterEncoding=UTF-8

com.mysql.jdbc.Driver

90000

20

3

20

3

true

true

SELECT CURRENT_USER

建議關於mysql自動關閉服務的三個方法,使用者最好採取第一個辦法最為徹底解決