MySQL 8小时问题

基于 MySQL的Web网站在一段时间后会经常处于无法响应的状态,或者响应非常慢,这是由于数据库连接自动关闭了。
在MySQL Command Line Client中执行show variables like '%timeout%'
中我们可以看到有两个变量wait_timeout和interactive-timeout,它们的默认值都为28800秒,即为8小时。
也就是说默认情况下,Mysql在经过8小时(28800秒)不使用后会自动关闭已打开的连接。 

1.为了解决这个问题,对于MySQL5之前的版本,如Mysql4.x,只需要修改连接池配置中的URL,添加一个参数:autoReconnect=true,
如果是MySQL5及以后的版本,则需要修改my.cnf(或者my.ini)文件,在[mysqld]后面添加上: 

wait_timeout = n 

interactive-timeout = n 

n为服务器关闭交互式连接前等待活动的秒数。 

2. ruguoc3p0 连接池解决方法
                <property name="testConnectionOnCheckout" value="false"/>
<property name="testConnectionOnCheckin" value="false"/>
当属性为true 时可以解决。因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable 等方法来提升连接测试的性能
 <property name="idleConnectionTestPeriod" value="60"/> 隔多少秒检查所有连接池中的空闲连接,默认为0表示不检查;

 <property name="automaticTestTable" value="c3p0_connection_testtable" />

转载于:https://my.oschina.net/congqian/blog/80677

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值