MySQL连接异常:Communications link failure问题及解决
作者:yunyala
这篇文章主要介绍了MySQL连接异常:Communications link failure问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
MySQL连接异常:Communications link failure
可以采用如下方法解决
1.首先确认数据库是否可以正常运行中并且可被连接。可以使用工具 Navicat 测试连接。
2.判断MySQL版本兼容问题。程序中:
- mysql-connector-java:8.0.18版本
- driver-class-name:com.mysql.cj.jdbc.Driver(driver-class-name只有在8.0版本才能使用com.mysql.cj.jdbc.Driver,而8.0以下只能使用com.mysql.jdbc.Driver;而且8.0版本以上需要设置时区为:serverTimezone=GMT%2B8)
- 使用命令select version()查看MySQL版本:5.7.39,
3.检查数据库连接参数:在application.properties 文件中,配置如下:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=123456
经过多次尝试,发现出问题是在url配置中useSSL=true参数,MySQL在高版本需要指明是否进行SSL连接,MySQL5是不需要这个参数的。
解决方案是:useSSL=false。
即改成如下配置:
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8&useSSL=false
自此,问题解决,数据库连接成功!
mysql连接异常-CommunicationException
今天遇到上图的异常。
原因
mysql连接在超过空闲连接超时时间后被断开,此时程序不知道该连接已经断开,继续使用就会报上图的错。
解决办法
一般情况下很少出现这种错误。
解决方法有多种,可以从数据库层面解决:将过期时间设置成很大,不让连接超时;也可以从程序层面解决,在使用连接前校验有效性。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。