用druid数据库链接,日志中一直在报 Error,内容是 discard long time none received connection. , jdbcUrl:
原因:阿里他们给数据库设置的数据库空闲等待时间是60秒,mysql数据库到了空闲等待时间将关闭空闲的连接,以提升数据库服务器的处理能力。MySQL的默认空闲等待时间是8小时,就是「wait_timeout」的配置值。如果数据库主动关闭了空闲的连接,而连接池并不知道,还在使用这个连接,就会产生异常。
解决办法:
在运行参数中增加
-Ddruid.mysql.usePingMethod=false
其他解决方法(未测试):更新版本。druid的版本问题,在pom配置文件里,更新最druid版本可以解决。
扩展
testWhileIdle:是否开启获取连接是检查连接是否有效,默认true。
timeBetweenEvictionRunsMillis:空闲时间大于检查时间,注销空闲连接超过
timeBetweenEvictionRunsMillis的数据库连接,默认60s,设置未负数也会调整未默认值
Ddruid.mysql.usePingMethod: 是否是用ping的方式检查数据库连接,超过1秒失败,mysql连接默认开启。设置方式:-Ddruid.mysql.usePingMethod=false,当usePingMethod为false时,会使用“select 1”使用连接进行查询检查连接是否有效,因此不会出现空闲时间。
本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work
尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。