druid+mysql+mybatis 连接失效问题

问题描述:

使用druid+mysql+mybatis,发现数据库超过8小时不使用,再次使用时报错。这个问题困扰我很久了。

规避型的方法到时有很多,包括:

1、将mysql连接的超时时间由默认的8小时改为24小时(我的后台查询中有一个查询会每24小时执行一次,所以可以解决连接失效的问题);

2、自己的业务代码中加入重试机制。也就是说在首次执行数据操作库失败后,会重试3次。只有3次都失败才退出。(这个方法个人觉得是可取的)。

但是连接失效的根本原因还是一致困扰这我。今天有时间和老大一起跟了下代码,终于柳暗花明~~~~~

 

问题原因:

Druid+Mysql默认使用的是ping的方式去判断连接是否有效。我们给druid配置的validationQuery根本就不会执行。 

调试源码,发现usePingMethod变量为true 

那么问题来了,如何将usePingMethod变为false呢?

解决方法:

在进程的启动参数中(jvm参数)设置-Ddruid.mysql.usePingMethod=false即可。

希望给后面遇到类似问题的人一点参考

你可能感兴趣的:(数据库开发)