com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet successfully received from the server was 59,866 milliseconds ago. The last packet sent successfully to the server was 59,868 milliseconds ago.
上面这个错误在网上有很多。基本上都是因为mysql的waite_time 和druid的连接回收机制配置上的问题。但是我的原因却不是这个
首先理解这个错误的含义
- mysql的物理连接已经不可用了。上次成功使用此连接在59866毫秒之前。
mysql物理连接不可用无非就是两种情况,客户端主动断开连接,服务端主动断开连接。从现象来将,物理连接被断开了是必然的。但是有想想60秒就断开连接?我又没改过mysql的相关配置,所以不应该是mysql端的问题。所以我把眼光放在了客户端。我的客户端是spring boot2+Druid的方式。
又不禁的问自己,为什么每次报这个错误基本上都是在60秒左右?
下面看看配置:
druid:
filters: stat
maxActive: 20

博客介绍了在Spring Boot应用中遇到的Druid连接MySQL超时异常,通过分析排除了MySQL配置问题,聚焦于客户端,特别是由于HAProxy的TCP空闲超时设置导致连接在50秒后断开。调整Druid的`timeBetweenEvictionRunsMillis`参数为10秒,以避免连接过早关闭。总结了排查此类问题的思路和Druid关键配置参数。
最低0.47元/天 解锁文章
608

被折叠的 条评论
为什么被折叠?



