因为MySQL会对关闭超时连接(默认8小时),但数据库连接池没有移除失效连接,程序继续使用会报错
1:配置testOnBorrow和validationInterval属性
# 从池中借出对象之前,是否对其进行验证
spring.datasource.test-on-borrow=true
# 在该时间内被验证过的连接不会被重复验证
spring.datasource.validation-interval=150000
# Oracle 使用 SELECT 1 FROM DUAL 执行失败则认为连接失效
spring.datasource.validation-query=SELECT 1
2:如果使用timeBetweenEvictionRunsMillis和minEvictableIdleTimeMillis定时检测,则
修改minIdle=0
解决方案只针对tomcat jdbc pool
文档地址
http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html