设置MySQL数据库超时



数据库连接超时是由于数据库长时间不连接之后断开所导致的情况,断开之后首次就会给你抛个异常

(com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure Last packet sent to the server was X ms ago)
20x思考者日记网-束洋洋个人博客

20x思考者日记网-束洋洋个人博客

首先打开你的MySql控制台,输入密码后进入20x思考者日记网-束洋洋个人博客

QQ截图20130310192437.jpg20x思考者日记网-束洋洋个人博客

 20x思考者日记网-束洋洋个人博客

接着敲入命令来悄一悄为什么会超时20x思考者日记网-束洋洋个人博客

show global variables like 'wait_timeout';  

QQ截图20130310192437.jpg20x思考者日记网-束洋洋个人博客

mysql01.jpg20x思考者日记网-束洋洋个人博客

这里我们可以看到wait_timeout为28800,就是8小时。那么就是说MySQL的服务会在操作间隔8小时后断开,需要再次重连。当我们用java程序的JDBC来连接时又可以让它自动恢复。20x思考者日记网-束洋洋个人博客

interactive_timeout:服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。又见wait_timeout 20x思考者日记网-束洋洋个人博客

wait_timeout:服务器关闭非交互连接之前等待活动的秒数。在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义),又见interactive_timeout 20x思考者日记网-束洋洋个人博客

如此看来,两个变量是共同控制的,那么都必须对他们进行修改了。继续深入这两个变量wait_timeout的取值范围是1-2147483(Windows),1-31536000(linux),interactive_time取值随wait_timeout变动,它们的默认值都是28800。20x思考者日记网-束洋洋个人博客

MySQL的系统变量由配置文件控制,当配置文件中不配置时,系统使用默认值,这个28800就是默认值。要修改就只能在配置文件里修改。Windows下在%MySQL HOME%下有my.ini配置文件,打开后添加如下的一句话。(这里修改为388000)20x思考者日记网-束洋洋个人博客

mysql02.jpg20x思考者日记网-束洋洋个人博客

 20x思考者日记网-束洋洋个人博客

保存退出,重启mysql服务,一定是重启系统服务。便可看到修改结果:20x思考者日记网-束洋洋个人博客

mysql03.jpg20x思考者日记网-束洋洋个人博客

 20x思考者日记网-束洋洋个人博客

 20x思考者日记网-束洋洋个人博客

  Linux系统下的配置文件为/etc/my.cnf。(同上操作)20x思考者日记网-束洋洋个人博客

 

(转载本站文章请注明作者和出处 思考者日记网|束洋洋个人博客 ,请勿用于任何商业用途)

『访问 思考者日记网404页面 寻找遗失儿童』

告知
  •     本站90%以上文章均属原创,部分转载已加上原作者出处。 如需转载本站文章请您务必保留本站出处!
  •     打广告评论者请自重,请为广大网友提供一个健康干净的网络空间。
  •  感谢主机屋提供网站空间;
  •  感谢万网阿里云提供域名解析;
  •  感谢EmpireCMS提供CMS系统;
  •  感谢bootstrap展示本站前端页面;
  •  感谢Glyphicons Halflings提供字体;
  •  感谢大家一直以来对本站的喜爱,感谢大家!
近期文章 建议与反馈

 

网友评论
我也来说两句
点击显示

 

点击显示弹幕