环境:
1、使用tomcat内置连接池部署
2、mysql5.6
问题:
当连接池中的连接长时间未访问时,会报连接已经被关闭。
分析:
mysql5.6中默认的wait_timeout值为28800秒(8小时),那么如果连接池中申请的连接8小时内没有被使用过,则此连接会被mysql自动关闭掉,但是连接池中依然存在,所以当第二天(8小时以后)到连接池中申请连接时是没有问题的。但是申请的连接已经被mysql关闭了。此时就会提示连接已经被关闭了。
解决:
1、使用第三方的连接池。(百度或谷歌搜索)
2、修改wait_timeout值,在windows中,取值范围是1-2147483
Permitted Values | ||
Type (windows) | numeric | |
Default | 28800 | |
Range | 1 .. 2147483 |
那么在my.ini中设置wait_timeout=2147483
重启数据库后,查看设置的值是否生效 show global variables like 'wait_timeout';
或者将服务器时间调整至改前默认值(8小时)以后,使用系统看看还报不报错。