- N +

【Mysql】异常:Communications link failure 详解

【Mysql】异常:Communications link failure 详解原标题:【Mysql】异常:Communications link failure 详解

导读:

错误信息Communications link failure:The last packet successfully received from the server wa...

文章目录 [+]

错误信息

Communications link failure:The last packet successfully received from the server was 344,068 milliseconds ago.  

The last packet sent successfully to the server was 3 milliseconds ago.


错误分析

mysql服务器默认的空闲时间超过8个小时,MySQL将自动断开该连接,而连接池却认为该连接还是有效的,当应用申请使用该连接时,就会报错:Communications link failure,
The last packet successfully received from the server was *** millisecond ago.The last packet successfully sent to the server was *** 
millisecond ago。


解决方案

     wait timeout的值可以设定,但最多只能是2147483,不能再大了。也就是约24.85天。

      修改方法:MySQL通过my.ini 在

      # The TCP/IP Port the MySQL Server will listen on
      port=3306下面添加
      # this is myown dinifition for mysql connection timeout
      wait_timeout=31536000
      interactive_timeout=31536000

      以上是在网上找到的解决方法,但是一般连接的有效时间不用修改,后来分析了以下问题,发现是由于数据库连接池的一句配置引发的:

Xml代码
    <!-- 最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->   
  

 <property name="maxIdleTime" value="0"></property>


      由于mysql的连接空闲超过8个小时,所以就关闭了,但是连接池却永不丢弃连接,认为该连接还是有效的(因为并未校验连接的有效性),当应用申请使用该连接时,就会导致上面的报错。

      解决方法将value设置为20。


本文标题:【Mysql】异常:Communications link failure 详解
本文链接:https://www.kyjszj.com/sjkzq/31.html
作者授权:除特别说明外,本文由 开源技术之家 原创编译并授权 开源技术之家 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。

有好的文章希望我们帮助分享和推广,猛戳这里我要投稿

返回列表
上一篇:
下一篇:

发表评论中国互联网举报中心

快捷回复:

    评论列表 (暂无评论,共1057人参与)参与讨论

    还没有评论,来说两句吧...