SpringBoot解决mysql连接8小时问题
作者:小码过河.
服务连接mysql数据库,8小时没有数据库的操作时候,数据库会主动断开连接释放资源,本文就详细的介绍一下解决方法,感兴趣的可以了解一下
问题: 服务连接mysql数据库,8小时没有数据库的操作时候,数据库会主动断开连接释放资源
解决办法总共4种方法
MySQL 5版本之前可以通过在URL后面加入autoReconnect=true
application.properties文件中加入:
spring.datasource.test-on-borrow=true #(即在获取Connection对象时检测其可用性),不过这样会影响性能,但是这个配置是最有效的。 spring.datasource.test-while-idle=true spring.datasource.time-between-eviction-runs-millis= 3600000
数据库配置调整:
如果你有权限访问 MySQL 服务器的配置,你也可以调整 MySQL 的连接超时时间。修改 wait_timeout
和 interactive_timeout
参数,将它们设置为一个更大的值,以延长连接的存活时间。
请注意,修改 MySQL 服务器的配置可能需要谨慎考虑,因为这会影响到所有连接
my.ini 文件中修改此参数
[mysqld] wait_timeout=31536000 interactive_timeout=31536000
定时任务发送查询:
如果你没有使用连接池,你可以创建一个定时任务,在一定时间间隔内发送一个查询来保持连接活跃。这可以使用 Spring 的 @Scheduled
注解来实现
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); } }
到此这篇关于SpringBoot解决mysql连接8小时问题的文章就介绍到这了,更多相关SpringBoot mysql连接8小时内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- docker-compose启动springboot项目连接mysql问题
- SpringBoot项目如何连接MySQL8.0数据库
- SpringBoot利用jpa连接MySQL数据库的方法
- SpringBoot图文并茂详解如何引入mybatis与连接Mysql数据库
- Springboot2.0配置JPA多数据源连接两个mysql数据库方式
- SpringBoot集成Druid连接池连接MySQL8.0.11
- 教你用springboot连接mysql并实现增删改查
- SpringBoot多数据库连接(mysql+oracle)的实现
- springboot配置mysql连接的实例代码
- 解决springboot 连接 mysql 时报错 using password: NO的方案
- SpringBoot连接MYSQL数据库并使用JPA进行操作