程式和mysql資料庫連線,超過8小時應用程式不去訪問資料庫,資料庫就會斷掉連線。再次訪問就會拋異常。
通過druid連線池配置
validationquery:select 1 (用來檢測連線是否有效的sql,要求是乙個查詢語句。)
testwhileidle:true (申請連線的時候檢測,如果空閒時間大於timebetweenevictionrunsmillis, 執行validationquery檢測連線是否有效。)
timebetweenevictionrunsmillis:3600000(單位是毫秒,所以此處是1小時。)
mysql的安裝目錄找到配置檔案my.ini(my.cnf)
同時設定interactive_timeout=86400(24小時,或者其他時長)
和wait_timeout=86400才會生效。
連線資料庫的時候加上autoreconnect=true(這種方式只支援mysql5.0以下的版本)
例如:jdbc:mysql://localhost:3306/test?useunicode=true&characterencoding=utf-8&autoreconnect=true
mysql 空閒事務 mysql的空閒8小時問題
在spring中配置資料來源時,必須設定destroy method close 屬性,以便spring容器關閉時,資料來源能正常關閉。如果資料庫時mysql,如果資料來源配置不當,則可能發生經典的 8小時問題 原因是mysql在預設情況下如果發現乙個連線的空閒時間超過8小時,會在資料庫端自動關閉這...
MySql連線空閒8小時自動斷開引起的問題
根據查到的資料檢視mysql 有兩個引數,可以設定空閒連線的有效時長,分別是interactive timeout和wait timeout,可以在mysql配置檔案中設定。根據這一點,可以來進行排查了。使用show variables like timeout 命令查詢以上兩個引數的值,一查都是2...
Mysql連線 8小時問題
mysql預設設定當乙個連線的空閒時間超過8h,mysql就會自動斷開該連線,而連線池仍認為該連線有效。此情況下,若客戶端向連線池請求連線的話,連線池就會把已經失效的連線返回給客戶端,此時客戶端使用失效連線時即丟擲異常。解決方法 配置 spring.datasource.validation que...