问题:
使用 Mybatis 更新 MySQL 中的记录时Spring,遇到异常,socket读取错误导致通信链路失败:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 18,940 milliseconds ago. The last packet sent successfully to the server was 18,918 milliseconds ago.
原因:
MySQL连接在连接池之前超时识别它们。
解决方案:
解决此问题问题,可以采取以下几种方法:
增加 MySQL 配置文件(my.ini)中的超时值:
增加中的 wait_timeout 参数MySQL 配置文件 (my.ini) 以延长允许的空闲时间
减少连接池中的空闲时间:
配置连接池以在 MySQL 关闭连接之前丢弃连接。这可以通过为 minIdle 和 maxIdle 时间参数设置较低的值来实现。
添加验证连接查询:
添加验证查询到连接池配置。此查询可确保池在发出连接之前测试每个连接。然而,这种方法可能会带来性能开销。
以上是为什么 Mybatis 和 Spring 中出现'com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications Link Failure”?的详细内容。更多信息请关注PHP中文网其他相关文章!