mysql預設設定當乙個連線的空閒時間超過8h,mysql就會自動斷開該連線,而連線池仍認為該連線有效。此情況下,若客戶端向連線池請求連線的話,連線池就會把已經失效的連線返回給客戶端,此時客戶端使用失效連線時即丟擲異常。
解決方法:
配置:spring.datasource.validation-query=select1
spring.datasource.test-on-borrow=false //不檢查連線可用性
spring.datasource.test-while-idle=true
spring.datasource.time-between-eviction-run-millis=3600000 //設定每1h自動查詢一次資料庫,保持資料庫連線有效
spring.datasource.jdbc-interception=connectionstate.slowqueryreport(threshold=1000) //設定查詢時長超過1s即認為長查詢
MySQL 8小時連線超時問題
mysql配置當中有個配置項wait timeout,他控制的是如果乙個連線超過指定時間沒有活動,mysql服務端將單方面斷開連線,如果客戶端還保留這個連線,這個連線將不可用,導致客戶端報錯等異常出現,這個值預設等於28800,單位是秒,也就是8個小時。要解決這個問題,有人將配置的值修改到很大,個人...
解決mysql到了8小時斷開連線問題
我的是springboot專案,將服務放到雲伺服器後發現了乙個問題,就是服務如果8小時沒有收到請求就會字段斷開連線,當再次訪問時就會爆出連線異常,在網上找了相關資料,在此記錄解決方案。1 如果是mysql4以下,則只需要在datasource的url後加上autoreconnect true便可以解...
Hibernate連線Mysql的8小時問題
這個問題估計是用mysql建立 都會碰到的。每天早上起來開啟網頁,就會看到這個問題。原因是mysql有乙個time out全域性值,這個值是28800,也就是28800秒,正好是8小時。8個小時之後會斷開連線,然後jdbc的connection就需要重新連線才行。在mysql中執行 show glo...