mysql链接错误The last packet successfully received from the server was xxx milliseconds ago解决方案

这篇具有很好参考价值的文章主要介绍了mysql链接错误The last packet successfully received from the server was xxx milliseconds ago解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

线上项目偶尔出现错误,这个错误发现是在项目无人操作一段时间后就产生,如果有人操作,那就不会出现。

具体报错信息

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 385,290,819 milliseconds ago. The last packet sent successfully to the server was 385,290,820 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.

中文意思大概是:

从服务器成功接收到的最后一个数据包是385290819毫秒前。最后一个成功发送到服务器的数据包是385290820毫秒前。比服务器配置的值“wait_timeout”长。在应用程序中使用之前,应考虑过期和/或测试连接有效性,增加服务器配置的客户端超时值,或使用连接器/J连接属性“autoReconnect=true”来避免此问题。

错误原因:

MySQL数据库一般默认的连接等待时间为28800s(即8小时),超过8h,数据库会断开这个连接,但是应用不知道这个连接已经被数据库断开,所以链接池认为该连接是有效的,在下次请求时,连接池会把自己认为有效,但是数据库认为无效的连接分配出去,便会导致如上错误;
查询了mysql数据库的wait_timeout
SHOW GLOBAL VARIABLES LIKE ‘%wait_timeout%’;
发现确实是8小时
the last packet successfully receive,mysql,数据库,服务器
注:这里有两个超时需要注意:
interactive_timeout:指的是mysql在关闭一个交互的连接之前所要等待的秒数,
wait_timeout:指的是mysql在关闭一个非交互的连接之前所要等待的秒数
通过mysql客户端连接数据库是交互式连接,通过jdbc连接数据库是非交互式连接
所以我们要关注wait_timeout这个参数的值

再去看项目的配置文件,发现没有一项跟连接超时有关
the last packet successfully receive,mysql,数据库,服务器

解决办法

1.C3P0连接池

加上idleConnectionTestPeriod:用来配置测试空闲连接的间隔时间,如果发现超时,会自动去掉。默认0,不进行测试,单位s(秒)
更新后的配置文件,idleConnectionTestPeriod只要设置比数据库28800秒(8小时)小就可以,我这边设置的是3600秒即一小时进行检测。
the last packet successfully receive,mysql,数据库,服务器文章来源地址https://www.toymoban.com/news/detail-779476.html

到了这里,关于mysql链接错误The last packet successfully received from the server was xxx milliseconds ago解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包