com.mysql.jdbc.exceptions.jdbc4.CommunicationsException间隔一段时间后操作系统报错-连接超时

 Could not open JDBC Connection for transaction; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 60,614,379 milliseconds ago.  The last packet sent successfully to the server was 60,614,379 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.

最近新上线一个项目,mysql5.6.7数据库,我们提供接口服务,对方业务系统每天定期往我们系统中批量传数据,然后每天传输数据的前两条总会出错,错误信息如上所述。百度了一圈原来是与mysql数据库的配置有关,mysql将其连接的等待时间(wait_timeout)缺省为8小时,下图为在正式环境查到的mysql的wait_timeout配置信息:

28800 seconds,也就是8小时

超过wait_timeout后mysql将关闭改连接,但是此时Java应用的连接池仍然合法地持有该连接的引用。当用该连接来进行数据库操作时,就碰到上述错误。

解决办法:

1,在jdbc连接url的配置中,你可以附上“autoReconnect=true”,但这仅对mysql5以前的版本起作用。

2,增加wait_timeout和interactive_timeout的缺省值,set global wait_timeout=604800;set global interactive_timeout=604800;

但是这样一直长时间占用数据库连接,可能会影响数据库及服务器性能,甚至会导致内存溢出(未求证!)。

仅此记录一下,如有错误之处欢迎指正。

参考:https://blog.csdn.net/cynhafa/article/details/19676865?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值