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ā)送查詢:
如果你沒(méi)有使用連接池,你可以創(chuàng)建一個(gè)定時(shí)任務(wù),在一定時(shí)間間隔內(nèi)發(fā)送一個(gè)查詢來(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)文章
支付寶開(kāi)發(fā)平臺(tái)之第三方授權(quán)登錄與獲取用戶信息
本文主要介紹了第三方授權(quán)登錄與獲取用戶信息的實(shí)例方法,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03
Spring?Boot異步線程間數(shù)據(jù)傳遞的四種方式
這篇文章主要為大家介紹了Spring?Boot異步線程間數(shù)據(jù)傳遞的四種方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
java?AES加密/解密實(shí)現(xiàn)完整代碼(附帶源碼)
這篇文章主要介紹了java?AES加密/解密實(shí)現(xiàn)的相關(guān)資料,包括AES加密算法的基本原理、Java加密API的使用方法以及項(xiàng)目實(shí)現(xiàn)的步驟和代碼示例,需要的朋友可以參考下2025-04-04
Java Spring Cloud Bus 實(shí)現(xiàn)配置實(shí)時(shí)更新詳解
這篇文章主要介紹了SpringCloud Bus如何實(shí)現(xiàn)配置刷新,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-09-09
springboot 使用yml配置文件自定義屬性的操作代碼
在SpringBoot中yml/yaml文件可以自定義一些屬性,以供注入給自定義bean對(duì)象的屬性,主要通過(guò)空格和層次來(lái)實(shí)現(xiàn),類似于python代碼,本文通過(guò)實(shí)例代碼給大家介紹springboot 使用yml配置文件自定義屬性,感興趣的朋友跟隨小編一起看看吧2024-03-03
Java中RSA加密解密的實(shí)現(xiàn)方法分析
這篇文章主要介紹了Java中RSA加密解密的實(shí)現(xiàn)方法,結(jié)合具體實(shí)例形式分析了java實(shí)現(xiàn)RSA加密解密算法的具體步驟與相關(guān)操作技巧,并附帶了關(guān)于RSA算法密鑰長(zhǎng)度/密文長(zhǎng)度/明文長(zhǎng)度的參考說(shuō)明,需要的朋友可以參考下2017-07-07
圖解Java經(jīng)典算法冒泡選擇插入希爾排序的原理與實(shí)現(xiàn)
冒泡排序是一種簡(jiǎn)單的排序算法,它也是一種穩(wěn)定排序算法。其實(shí)現(xiàn)原理是重復(fù)掃描待排序序列,并比較每一對(duì)相鄰的元素,當(dāng)該對(duì)元素順序不正確時(shí)進(jìn)行交換。一直重復(fù)這個(gè)過(guò)程,直到?jīng)]有任何兩個(gè)相鄰元素可以交換,就表明完成了排序2022-09-09

