discard long time none received connection. , jdbcUrl :

1报错

用druid 数据库链接,日志中一直在报 Error,内容是 discard long time none received connection. , jdbcUrl :

2原因

   阿里他们给数据库设置的数据库空闲等待时间是60秒,mysql数据库到了空闲等待时间将关闭空闲的连接,以提升数据库服务器的处理能力。MySQL的默认空闲等待时间是8小时,就是「wait_timeout」的配置值。如果数据库主动关闭了空闲的连接,而连接池并不知道,还在使用这个连接,就会产生异常。

3解决办法

1在运行参数中增加

-Ddruid.mysql.usePingMethod=false

2 更新版本

druid的版本问题,在pom 配置文件里,更新最druid 版本可以解决。

4 扩展知识

testWhileIdle:是否开启获取连接是检查连接是否有效,默认true。

timeBetweenEvictionRunsMillis:空闲时间大于检查时间,注销空闲连接超过

timeBetweenEvictionRunsMillis的数据库连接,默认60s,设置未负数也会调整未默认值

Ddruid.mysql.usePingMethod: 是否是用ping的方式检查数据库连接,超过1秒失败,mysql连接默认开启。设置方式:-Ddruid.mysql.usePingMethod=false,当usePingMethod为false时,会使用“select 1”使用连接进行查询检查连接是否有效,因此不会出现空闲时间。

你可能感兴趣的:(mysql,JAVA高级,java)