博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Communications link failure的解决办法
阅读量:5882 次
发布时间:2019-06-19

本文共 604 字,大约阅读时间需要 2 分钟。

使用Connector/J连接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或是使用Connector/J的autoReconnect属性避免该错误。

后来查了一些资料,才发现遇到这个问题的人还真不少,大部分都是使用连接池方式时才会出现这个问题,短连接应该很难出现这个问题。这个问题的原因:

MySQL服务器默认的“wait_timeout”是28800秒即8小时,意味着如果一个连接的空闲时间超过8个小时,MySQL将自动断开该连接,而连接池却认为该连接还是有效的(因为并未校验连接的有效性),当应用申请使用该连接时,就会导致上面的报错。

修改MySQL的参数,wait_timeout最大为31536000即1年,在my.cnf中加入:

[mysqld]

wait_timeout=31536000

interactive_timeout=31536000

重启生效,需要同时修改这两个参数。

转载地址:http://ewpix.baihongyu.com/

你可能感兴趣的文章
洛谷 1273 有线电视网
查看>>
maven笔记(4)
查看>>
Jquery常用方法合集,超实用
查看>>
asp.net 1.1网站开发配置出现”Visual Studio .NET 无法创建或打开应用程序”解决方法...
查看>>
有关xerosploit运行报错问题的有效解决方案
查看>>
git自学记录(一)~本地安装Git Hash
查看>>
showdialog
查看>>
HDU Problem 4857 逃生【拓扑排序+优先队列】
查看>>
springMVC框架中的ajax验证
查看>>
笔试题--奇虎360-2010
查看>>
SQL 通配符
查看>>
Zookeeper 集群搭建
查看>>
mysql常用的一些命令,用于查看数据库、表、字段编码
查看>>
C#连接oracle数据库操作
查看>>
Error:Execution failed for task ':app:preDebugAndroidTestBuild'. > Conflict with dependency
查看>>
一起学Android之Sqlite
查看>>
Python 精要参考(第二版) 第四章 运算符与表达式
查看>>
第一个Sprint冲刺第七天
查看>>
使用记事本编写html代码并运行
查看>>
valgrind 的使用简介
查看>>