数据库链接超时是因为数据库长时间不链接以后断开所致使的状况,断开以后首次就会给你抛个异常(com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure Last packet sent to the server was X ms ago)html
首先打开你的MySql控制台,输入密码后进入java
接着敲入命令来悄一悄为何会超时mysql
这里咱们能够看到wait_timeout为28800,就是8小时。那么就是说MySQL的服务会在操做间隔8小时后断开,须要再次重连。当咱们用java程序的JDBC来链接时又可让它自动恢复。
interactive_timeout:服务器关闭交互式链接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。又见wait_timeout
wait_timeout:服务器关闭非交互链接以前等待活动的秒数。在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,取决于客户端类型(由mysql_real_connect()的链接选项CLIENT_INTERACTIVE定义),又见interactive_timeout
如此看来,两个变量是共同控制的,那么都必须对他们进行修改了。继续深刻这两个变量wait_timeout的取值范围是1-2147483(Windows),1-31536000(linux),interactive_time取值随wait_timeout变更,它们的默认值都是28800。
MySQL的系统变量由配置文件控制,当配置文件中不配置时,系统使用默认值,这个28800就是默认值。要修改就只能在配置文件里修改。Windows下在%MySQL HOME%下有my.ini配置文件,打开后添加以下的一句话。(这里修改成388000)linux
保存退出,重启mysql服务,必定是重启系统服务。即可看到修改结果:sql
Linux系统下的配置文件为/etc/my.cnf。(同上操做)数据库
本文同时发布在:http://www.shuyangyang.com.cn/jishuliangongfang/shujuku/2013-03-10/63.html服务器