在mysql資料庫中,如果乙個連線8小時沒有請求和操作,就會自動斷開,從而導致一些基於資料庫連線的應用程式,特別是 web 應用程式出錯。
有三個方法可以解決這個問題:
1:修改mysql配置引數
2:修改jdbc
3:修改第三方的資料庫連線池應用 proxool.xml
方法一:這個引數的名稱是 wait_timeout,其預設值為 28800秒(8小時)。其意義為關閉乙個連線之前在這個連線上等到行動的秒數,也就是說,如果乙個連線閒置超過這個選項所設定的秒數,mysql 會主動斷開這個連線。
修改操作:
linux下開啟/etc/my.cnf,在屬性組mysqld下面新增引數如下:
[mysqld]
interactive_timeout=28800000
wait_timeout=28800000
windows下開啟my.ini,增加:
interactive_timeout=28800000
wait_timeout=28800000
有實踐表明,沒有辦法把這個值設定成無限大,即永久。因此如果你無法保證你的應用程式必定在設定的秒數內至少有一次操作,那麼最好用第二個方法解決這個問題。
方法二:修改如下jdbc連線的 url:
jdbc:mysql://hostaddress:3306/schemaname?autoreconnect=true
新增 autoreconnect=true 這個引數,即能解決這個問題。
方法三:配置檔案(proxool.xml):
<?xml version="1.0" encoding="utf-8"?>
mysql
jdbc:mysql://localhost/yourdatebase?useunicode=true&characterencoding=utf-8
com.mysql.jdbc.driver
90000 20
3203true
true
select current_user
解決mysql自動斷開連線的問題
解決 mysql自動斷開連線的問題 有三個方法可以解決這個問題 1 修改mysql配置引數 2 修改jdbc 3 修改第三方的資料庫連線池應用 proxool.xml方法1 的解決方案 這個引數的名稱是 wait timeout 其預設值為 28800秒 8 小時 其意義為關閉乙個連線之前在這個連線...
SecureCRT自動斷開連線的問題
直接在虛擬機器上ssh道實驗室的伺服器時並沒有發現過上一段時間不操作就會斷開,可能是我沒有注意,也能是操作時間間隔比較短。但是在securecrt上登入時,發現經常的斷開,很是鬱悶,所以baidu了一下,呵呵,好多人都遇到過這種問題。我也貼一下,方便記憶。有時候伺服器端的 etc profile 或...
SecureCRT自動斷開連線的問題
直接在虛擬機器上ssh道實驗室的伺服器時並沒有發現過上一段時間不操作就會斷開,可能是我沒有注意,也能是操作時間間隔比較短。但是在securecrt上登入時,發現經常的斷開,很是鬱悶,所以baidu了一下,呵呵,好多人都遇到過這種問題。我也貼一下,方便記憶。有時候伺服器端的 etc profile 或...