这个问题涉及的方面很多,需要一步步去排查,可能环境有问题,数据库有问题,但是网上最多的应该是如下的方式去解决。

以单个数据源为主,多个数据源基本方法一致。

1、MySQL 5版本之前可以通过在URL后面加入autoReconnect=true,如:

spring.datasource.url=jdbc:mysql://localhost/test?autoReconnect=true

2、application.properties文件中加入:

spring.datasource.test-on-borrow=true #(即在获取Connection对象时检测其可用性),不过这样会影响性能,但是这个配置是最有效的。
spring.datasource.test-while-idle=true
spring.datasource.time-between-eviction-runs-millis= 3600000

3、粗暴点的直接修改wait_timeout时间:

show global variables like 'wait_timeout';

推荐使用第2种,从配置项入手。

网上有这块的详细解释:

datasource.qss.max-idle=10
# Number of ms to wait before throwing an exception if no connection is available.
datasource.qss.max-wait=10000
datasource.qss.min-idle=5
datasource.qss.initial-size=5
# Maximum number of active connections that can be allocated from this pool at the same time.
datasource.qss.max-active=100
datasource.qss.validation-query=SELECT 1
#使用testOnBorrow为true(即在获取Connection对象时检测其可用性),不过这样会影响性能
# Validate the connection before borrowing it from the pool.
datasource.qss.test-on-borrow=true
#有些数据库连接的时候有超时限制(mysql连接在8小时后断开),或者由于网络中断等原因,连接池的连接会出现失效的情况,这时候设置一个testWhileIdle参数为true,可以保证连接池内部定时检测连接的可用性,不可用的连接会被抛弃或者重建,最大情况的保证从连接池中得到的Connection对象是可用的。
datasource.qss.test-while-idle=true
#设置当连接被归还时,是否要提交所有还未完成的事务
datasource.qss.test-on-return=false
#如果当前连接池中某个连接在空闲了timeBetweenEvictionRunsMillis时间后任然没有使用,则被物理性的关闭掉。
datasource.qss.time-between-eviction-runs-millis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
datasource.qss.min-evictable-idle-time-millis=300000
datasource.qss.jdbc-interceptors=ConnectionState;SlowQueryReport(threshold=0)

总之,要不断尝试发现问题来解决,上述方式不一定准确。可能代码问题,可以配置问题,也可能是数据库的问题;

参考:

http://m.jb51.net/article/108955.htm(以上内容转自此篇文章)

http://blog.csdn.net/return__null/article/details/51589038

http://www.jianshu.com/p/c642a83a1ec7(以上小部分配置转自此篇文章)

http://www.jianshu.com/p/1626d41572f2

http://soberchina.iteye.com/blog/2355289

http://www.ijianbian.com/home/post/detail?id=6201338

http://blog.csdn.net/neosmith/article/details/61202084

https://www.cnblogs.com/java-zhao/p/5413845.html

https://www.cnblogs.com/ityouknow/p/6102399.html

http://www.jianshu.com/p/34730e595a8c

http://confluence.goldpitcher.co.kr/pages/viewpage.action?pageId=136317019

http://xdjava.iteye.com/blog/1525148

http://blog.csdn.net/pq258280920/article/details/17136335

http://grokbase.com/t/servicemix/users/093m2kqnpn/smx4-and-classloading-of-jdbc-driver-mysql-question

Spring Boot多数据源连接8小时后断开的问题解决(MySQL)的更多相关文章

  1. Spring Boot 添加Druid连接池(1.5 版本)

    Druid是一个关系型数据库连接池,是阿里巴巴的一个开源项目,地址:https://github.com/alibaba/druid .Druid不但提供连接池的功能,还提供监控功能,可以实时查看数据 ...

  2. (43). Spring Boot动态数据源(多数据源自动切换)【从零开始学Spring Boot】

    在上一篇我们介绍了多数据源,但是我们会发现在实际中我们很少直接获取数据源对象进行操作,我们常用的是jdbcTemplate或者是jpa进行操作数据库.那么这一节我们将要介绍怎么进行多数据源动态切换.添 ...

  3. Spring Boot多数据源配置(二)MongoDB

    在Spring Boot多数据源配置(一)durid.mysql.jpa 整合中已经讲过了Spring Boot如何配置mysql多数据源.本篇文章讲一下Spring Boot如何配置mongoDB多 ...

  4. spring cloud spring boot JPA 克隆对象修改属性后 无法正常的执行save方法进行保存或者更新

    2019-12-1220:34:58 spring cloud spring boot JPA 克隆对象修改属性后 无法正常的执行save方法进行保存或者更新 未解决

  5. spring boot配置druid连接池连接mysql

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  6. 关于Spring Boot 多数据源的事务管理

    自己的一些理解:自从用了Spring Boot 以来,这近乎零配置和"约定大于配置"的设计范式用着确实爽,其实对零配置的理解是:应该说可以是零配置可以跑一个简单的项目,因为Spri ...

  7. Docker 部署Spring Boot 项目并连接mysql、redis容器(记录过程)

    Spring Boot 项目配置 将写好的Spring Boot 项目通过maven 进行package打包获得可执行Jar 再src/main/docker(放哪都行)下编写创建Dockerfile ...

  8. 四、Spring Boot 多数据源 自动切换

    实现案例场景: 某系统除了需要从自己的主要数据库上读取和管理数据外,还有一部分业务涉及到其他多个数据库,要求可以在任何方法上可以灵活指定具体要操作的数据库.为了在开发中以最简单的方法使用,本文基于注解 ...

  9. Spring Boot使用Druid连接池基本配置

    以下为Spring Boot配置Druid 一.pom.xml配置 <dependency> <groupId>com.alibaba</groupId> < ...

随机推荐

  1. 转载:如何使用RFT自动打开IE

    如何在RFT测试脚本中打开IE浏览器?   第一步,配置应用程序进行测试: “配置”菜单 ——> “配置应用程序进行测试...”,进入下面这个界面,默认三个自带的应用程序,点击“添加”加入IE. ...

  2. 微信小程序组件解读和分析:九、form表单

    form表单组件说明: 表单,将组件内的用户输入的<switch/> <input/> <checkbox/> <slider/> <radio/ ...

  3. springmvc系列一 之配置介绍(包含官网doc)

    1.springmvc 官网参考地址: https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html 2 ...

  4. 软件开发:速度 vs 质量

    程序开发项目进行过程中,通常会冒出这样的困惑:应该选择速度,还是选择质量?很多程序猿都会有偷懒的思维,觉得把一些摸不清头绪.不知道怎么写的代码片段去掉,可以节省很多时间,更早完成项目计划. 其实过去几 ...

  5. Android原生方式获取经纬度

    两种定位方式:GPS定位.WiFi定位优劣: 如果项目定位要求较高还是建议使用三方地图库 GPS定位相比Wifi定位更精准且可在无网络情况下使用,但在室内基本暴毙无法使用WiFi定位没有室内外限制也不 ...

  6. fabric的安装

    https://blog.csdn.net/lepton126/article/details/79148027

  7. SolidWorks的文件类型

    零件模板 *.prtdot装配体模板 *.asmdot工程图模板 *.drwdot颜色文件 *.sldclr曲线文件 *.sldcrv复制设定向导文件 *.sldreg零件文件:prt sldprtF ...

  8. css的存在形式

    1.css的样式,可以写在head头中: 1).通过ID(#CC{}) 2).通过class (.cc{}) 2.可以将样式,单独写入css的某一个页中 1)通过在head头中,引改该css样式,通过 ...

  9. 第1节 yarn:13、yarn资源调度的介绍

    Yarn资源调度 yarn集群的监控管理界面: http://192.168.52.100:8088/cluster jobHistoryServer查看界面: http://192.168.52.1 ...

  10. java实现 数据结构:链表、 栈、 队列、优先级队列、哈希表

    java实现 数据结构:链表. 栈. 队列.优先级队列.哈希表   数据结构javavector工作importlist 最近在准备找工作的事情,就复习了一下java.翻了一下书和网上的教材,发现虽然 ...