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

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

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. [转]Sublime Text操作

    原文地址:http://www.madongdong.me/sublime-text3%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/ 作者:马东东 前言(Prologue) ...

  2. XCode的debug断点调试

    debug 流程控制 当你通过 Xcode 的源码编辑器的侧边槽 (或者通过下面的方法) 插入一个断点,程序到达断点时会就会停止运行. 调试条上会出现四个你可以用来控制程序的执行流程的按钮. 从左到右 ...

  3. 契约式设计(DbC)感想(一)

    契约式设计可以理解为正则编程的一种实践: 如果用我的三脚猫能力将这种实践方法形式化的话,大致如下(如有不正确处,请不吝指正): 1.对于方法Method的precondition & post ...

  4. 网站推广--Html关键词代码解说

    html的meta标签 1. meta标签是内嵌在你网页中的特殊html标签,包含着你有关于你网页的一些隐藏信息.Meat标签的作用是向搜索引擎解释你的网页是有关哪方面信息的.对于高级的搜索引擎来说, ...

  5. C/C++ new/delete []、内存泄漏、动态数组

    一.概念 new/delete是用于动态分配和撤销内存的运算符.new/delete是c++里才有的,c中是用malloc和free,c++虽然也可以用,但是不建议用.当我们使用关键字new在堆上动态 ...

  6. leetcode_684. Redundant Connection

    https://leetcode.com/problems/redundant-connection/ 一个无向图,n个顶点有n条边,输出一条可以删除的边,删除后使得图成为一棵树.可以使用并查集解决. ...

  7. CAD交互绘制样条线(com接口)

    在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性. 主要用到函数说明: _DMxDrawX::SendStringToExecuteFun 把命令当着函数执行,可以传参数.详细说明如 ...

  8. Analysis Of The Causes Of Internal Symmetry Of Hydraulic Motor

    The main reasons why hydraulic motors have this symmetrical internal structure are as follows: The   ...

  9. mysql group_concat函数详解

    group_concat( [DISTINCT]  要连接的字段   [Order BY 排序字段 ASC/DESC]   [Separator '分隔符'] ) 1. --以id分组,把price字 ...

  10. H5实现调用本地摄像头实现实时视频以及拍照功能

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...