使用Druid出现Causedby:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
)
一、Druid连接池配置问题
代码片.
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1
testWhileIdle: true
二、DB的wait_timeout设置(主要原因)
wait_timeout巨坑,连接池在一开始获取连接的时候例如初始化连接是5个,在数据库原有的连接还有,连接池会记录这个个连接是可用的,但是你自己的数据库检测连接默认是60秒进行检测,等你在执行任务的时候,这个连接在你使用的上一毫秒失效了,mysql自动断开连接,你再使用这个连接运行SQL的时候就抛出了上面的异常,获取连接超时:

最低0.47元/天 解锁文章
2891

被折叠的 条评论
为什么被折叠?



