Spring Boot 解決Mysql斷連問(wèn)題

在Spring Boot JPA連接Mysql的過(guò)程中,經(jīng)過(guò) 8小時(shí)后會(huì)發(fā)現(xiàn)斷連的情況。application.properties配置如下(此坑我跳過(guò),歡迎入坑):

spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.username=dbuser
spring.datasource.password=dbpass
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

原因分析:

  • mysql在默認(rèn)的情況下,如果發(fā)現(xiàn)一個(gè)連接空閑時(shí)間超過(guò)8小時(shí),將會(huì)在數(shù)據(jù)庫(kù)端自動(dòng)關(guān)閉這個(gè)連接。(mysql wait_timeout 為8小時(shí))。

解決方式:

1 . Mysql 5 版本之前可以通過(guò)在URL后面加入autoReconnect=true,如:
spring.datasource.url=jdbc:mysql://localhost/test?autoReconnect=true

2 . application.properties文件中加入:

spring.datasource.test-on-borrow=false
spring.datasource.test-while-idle=true
spring.datasource.time-between-eviction-runs-millis= 3600000

3 . 粗暴點(diǎn)的直接修改 wait_timeout 時(shí)間:
show global variables like 'wait_timeout';

Paste_Image.png
推薦第二種方式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,915評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,951評(píng)論 6 342
  • 這些屬性是否生效取決于對(duì)應(yīng)的組件是否聲明為 Spring 應(yīng)用程序上下文里的 Bean(基本是自動(dòng)配置的),為一個(gè)...
    發(fā)光的魚閱讀 1,446評(píng)論 0 14
  • =========================================================...
    lavor閱讀 3,508評(píng)論 0 5
  • 確認(rèn)取消對(duì)話框 單選對(duì)話框 多選對(duì)話框
    yanghanbin_it閱讀 651評(píng)論 0 0