1.异常描述:
Error querying database. Cause: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
2.异常原因:
查阅其他文章后发现明显与自己的情况不同,其他文章的“milliseconds”是有时长的,而我是0。
经查后发现为MySQL版本问题
前几天我刚刚把MySQL5.7换成了MySQL8,并在当天开启了MySQL8服务
因而程序中,jdbc.properties文件我使用了MySQL8的写法
但查看Navicat时发现MySQL又回到了5的版本
至此发现问题,更改SQL版本后得以解决。
(补充1:关于配置文件 MySQL8版本和5版本的不同如下)
驱动类driver-class-name
MySQL 5版本使用jdbc5驱动,驱动类使用:com.mysql.jdbc.Driver
MySQL 8版本使用jdbc8驱动,驱动类使用:com.mysql.cj.jdbc.Driver连接地址url MySQL
5版本的url: jdbc:mysql://localhost:3306/ssm
8版本的url:jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC
(补充2:同时拥有两个版本的MySQL,如何切换)
- win+r打开运行,输入services.msc打开服务
- 找到MySQL
- 把不需要的那个右键->停止,然后右键->属性->禁用
- 最后,把需要的版本右键->启动,并在属性中将其设为自动