mysql报错:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully receiv

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 54,337,996 milliseconds ago.  The last packet sent successfully to the server was 54,337,997 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

报错原因:

MySQL服务器默认的“wait_timeout”是28800秒即8小时,

意味着如果一个连接的空闲时间超过8个小时,MySQL将自动断开该连接,

而连接池却认为该连接还是有效的(因为并未校验连接的有效性),当应用申请使用该连接时,就会导致上面的报错。

解决方法:

1. 如果是mysql 5以下,可以在jdbc的url中加入autoReconnect属性,例如:

jdbc:mysql://localhost:3306/anxincar?autoReconnect=true

2.如果是mysql5.0以上版本,则修改my.ini里面的wait_timeout为最大时间,如下:

[mysqld]
wait_timeout=31536000
interactive_timeout=31536000

最后:重启mysql服务,重启tomcat,让配置文件生效。


你可能感兴趣的:(mysql报错:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully receiv)