MySQL数据库常见异常记录
1 报错:
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'.
原因:用了最新的 MySQL 连接驱动
解决: 将 com.mysql.jdbc.Driver 改为 com.mysql.cj.jdbc.Driver
Class.forName("com.mysql.jdbc.Driver");
// 改为
Class.forName("com.mysql.cj.jdbc.Driver");
2 报错:
The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone.
原因:数据库和系统时区差异
解决:在 JDBC 连接的 url 后面加上 serverTimezone=GMT 即可解决问题,如果需要使用 gmt+8 时区,需要写成 GMT%2B8,否则会被解析为空。
Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1/test", "root", "123456");
// 改为
Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1/test?serverTimezone=GMT%2B8", "root", "123456");
3 报错:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server
原因:maven 中 MySQL 依赖包的版本与系统实际 MySQL 版本不符
解决:版本改成 8.0.22
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>