SpringBoot解決mysql連接8小時(shí)問(wèn)題
問(wèn)題: 服務(wù)連接mysql數(shù)據(jù)庫(kù),8小時(shí)沒(méi)有數(shù)據(jù)庫(kù)的操作時(shí)候,數(shù)據(jù)庫(kù)會(huì)主動(dòng)斷開(kāi)連接釋放資源
解決辦法總共4種方法
MySQL 5版本之前可以通過(guò)在URL后面加入autoReconnect=true
application.properties文件中加入:
spring.datasource.test-on-borrow=true #(即在獲取Connection對(duì)象時(shí)檢測(cè)其可用性),不過(guò)這樣會(huì)影響性能,但是這個(gè)配置是最有效的。 spring.datasource.test-while-idle=true spring.datasource.time-between-eviction-runs-millis= 3600000
數(shù)據(jù)庫(kù)配置調(diào)整:
如果你有權(quán)限訪問(wèn) MySQL 服務(wù)器的配置,你也可以調(diào)整 MySQL 的連接超時(shí)時(shí)間。修改 wait_timeout
和 interactive_timeout
參數(shù),將它們?cè)O(shè)置為一個(gè)更大的值,以延長(zhǎng)連接的存活時(shí)間。
請(qǐng)注意,修改 MySQL 服務(wù)器的配置可能需要謹(jǐn)慎考慮,因?yàn)檫@會(huì)影響到所有連接
my.ini 文件中修改此參數(shù)
[mysqld] wait_timeout=31536000 interactive_timeout=31536000
定時(shí)任務(wù)發(fā)送查詢(xún):
如果你沒(méi)有使用連接池,你可以創(chuàng)建一個(gè)定時(shí)任務(wù),在一定時(shí)間間隔內(nèi)發(fā)送一個(gè)查詢(xún)來(lái)保持連接活躍。這可以使用 Spring 的 @Scheduled
注解來(lái)實(shí)現(xiàn)
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class KeepAliveTask { private final JdbcTemplate jdbcTemplate; public KeepAliveTask(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } @Scheduled(fixedRate = 300000) // 5 minutes public void keepConnectionAlive() { jdbcTemplate.queryForObject("SELECT 1", Integer.class); } }
到此這篇關(guān)于SpringBoot解決mysql連接8小時(shí)問(wèn)題的文章就介紹到這了,更多相關(guān)SpringBoot mysql連接8小時(shí)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- docker-compose啟動(dòng)springboot項(xiàng)目連接mysql問(wèn)題
- SpringBoot項(xiàng)目如何連接MySQL8.0數(shù)據(jù)庫(kù)
- SpringBoot利用jpa連接MySQL數(shù)據(jù)庫(kù)的方法
- SpringBoot圖文并茂詳解如何引入mybatis與連接Mysql數(shù)據(jù)庫(kù)
- Springboot2.0配置JPA多數(shù)據(jù)源連接兩個(gè)mysql數(shù)據(jù)庫(kù)方式
- SpringBoot集成Druid連接池連接MySQL8.0.11
- 教你用springboot連接mysql并實(shí)現(xiàn)增刪改查
- SpringBoot多數(shù)據(jù)庫(kù)連接(mysql+oracle)的實(shí)現(xiàn)
- springboot配置mysql連接的實(shí)例代碼
- 解決springboot 連接 mysql 時(shí)報(bào)錯(cuò) using password: NO的方案
- SpringBoot連接MYSQL數(shù)據(jù)庫(kù)并使用JPA進(jìn)行操作
相關(guān)文章
SpringCloud添加客戶(hù)端Eureka Client過(guò)程解析
這篇文章主要介紹了SpringCloud添加客戶(hù)端Eureka Client過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03Java實(shí)現(xiàn)用位運(yùn)算維護(hù)狀態(tài)碼
位運(yùn)算是一種非常高效的運(yùn)算方式,在算法考察中比較常見(jiàn),那么業(yè)務(wù)代碼中我們?nèi)绾问褂梦贿\(yùn)算呢,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧2024-03-03后端如何接收格式為x-www-form-urlencoded的數(shù)據(jù)
x-www-form-urlencoded格式是一種常見(jiàn)的HTTP請(qǐng)求數(shù)據(jù)格式,它將請(qǐng)求參數(shù)編碼為鍵值對(duì)的形式,以便于傳輸和解析,下面這篇文章主要給大家介紹了關(guān)于后端如何接收格式為x-www-form-urlencoded的數(shù)據(jù),需要的朋友可以參考下2023-05-05Java for循環(huán)的妙用之雞兔同籠問(wèn)題
這篇文章主要給大家介紹了關(guān)于Java for循環(huán)的妙用之雞兔同籠問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Java構(gòu)造器與傳值學(xué)習(xí)總結(jié)
這篇文章主要為大家詳細(xì)介紹了Java構(gòu)造器與傳值學(xué)習(xí)總結(jié),文中示例介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Java實(shí)現(xiàn)將彩色PDF轉(zhuǎn)為灰度PDF的示例代碼
本文以Java代碼為例介紹如何實(shí)現(xiàn)將彩色PDF文件轉(zhuǎn)為灰度(黑白)的PDF文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧2022-03-03IDEA使用jformdesigner插件做管理系統(tǒng)MVC架構(gòu)的步驟和實(shí)現(xiàn)思路
在?IntelliJ?IDEA?中結(jié)合?JFormDesigner?插件,通過(guò)?Swing?框架實(shí)現(xiàn)一個(gè)管理系統(tǒng)的?MVC?架構(gòu)是一種經(jīng)典的開(kāi)發(fā)方式,以下是具體的步驟和實(shí)現(xiàn)思路,包含從項(xiàng)目創(chuàng)建到?MVC?架構(gòu)的核心代碼實(shí)現(xiàn),需要的朋友可以參考下2024-12-12java8中的lambda表達(dá)式,看這篇絕對(duì)夠
這篇文章主要介紹了java8中的lambda表達(dá)式,看這篇絕對(duì)夠!具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03