最q做试Q发现Mysql q一D|间会(x)无法q接Q导致数据库数据不一臻I极其郁闷?/p>
下面是{一哥门?/p>
使用Connector/Jq接MySQL数据库,E序q行较长旉后就?x)报以下错误Q?/p>
Communications link failureQThe last packet successfully received from the server was *** millisecond ago.The last packet successfully sent to the server was *** millisecond ago?/p>
其中错误q会(x)提示你修改wait_timeout或是使用Connector/J的autoReconnect属性避免该错误?/p>
后来查了一些资料,才发现遇到这个问题的真不,大部分都是用连接池方式时才?x)出现这个问题,短连接应该很隑և现这个问题。这个问题的原因Q?/p>
MySQL服务器默认的“wait_timeout”?8800U即8时Q意味着如果一个连接的I闲旉过8个小ӞMySQL自动断开该连接,而连接池却认q接q是有效?因ؓ(f)q未校验q接的有效?Q当应用甌使用该连接时Q就?x)导致上面的报错?/p>
1.按照错误的提C,可以在JDBC URL中用autoReconnect属性,实际试时用了autoReconnect=true& failOverReadOnly=falseQ不qƈ未v作用Q用的?.1版本Q可能真像网上所说的只对4之前的版本有效?/p>
2.没办法,只能修改MySQL的参CQwait_timeout最大ؓ(f)31536000?q_(d)在my.cnf中加入:(x)
[mysqld]
wait_timeout=31536000
interactive_timeout=31536000
重启生效Q需要同时修改这两个参数?/p>
本文来自CSDN博客Q{载请标明出处Q?a >http://blog.csdn.net/cau99/archive/2009/12/11/4987760.aspx