durid 无法连接mysql_druid+mysql+mybatis 连接失效问题

问题描述:

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

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

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

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

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

问题原因:

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

0818b9ca8b590ca3270a3433284dd417.png

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

0818b9ca8b590ca3270a3433284dd417.png

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

解决方法:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值