某些小时后MySql连接自动掉线

MySql配置为删除任何闲置超过8小时的连接。 这意味着什么? 在8个小时的间隔后返回到已部署的应用程序之后(如果未更改默认SQL参数),将会遇到异常情况。

如何解决这个问题?

  1. 增加wait_time参数-不是一个好主意,它可能不必要地占用了资源,并且不一定是可靠的解决方法。 除此之外,依靠“外部”配置进行故障转移不是一个好主意-如果服务器本身崩溃了,怎么可能在一个实例中丢失了该配置呢?
    这种方法会出现问题。
  2. 将参数autoReconnect = true与JDBC URL一起使用-我的SQl本身不建议这样做,请查看链接,并且人们报告说这样做也不起作用,请参考链接。
  3. 自定义处理-让您的代码确定连接已丢失,然后恢复它并尝试重新连接,但是这将在代码中带来很多故障转移机制。
  4. 我发现的最佳方法是将池机制配置为c3p0。 看到这篇文章如何在JPA中为休眠配置c3p0,它简单,简单且可靠。

那么,您如何测试该问题已解决?

  1. 将MySql中的wait_timeout更改为仅2分钟,这是可以从MySql工作台管理控制台完成的方法

    mysql_timeout

  2. 保持idleTestPeriod的值小于wait_timeout-快速回顾一下idleTestPeriod的含义
  3. idleTestPeriod:  default value=0; If this is a number greater than 0, c3p0 will test all idle, pooled but unchecked-out connections, every this number of seconds
  4. 在wait_timeout过去之后登录-它不应引发异常

参考: 在几个小时后 ,我们的JCG合作伙伴 Chandan Pandey在“ 软件设计和开发思想”博客上自动 断开了MySql连接

翻译自: https://www.javacodegeeks.com/2013/01/mysql-connections-autodrop-after-a-certain-hours.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值