文章目录
  1. 1. JDBC连接Mysql5 com.mysql.jdbc.Driver
  2. 2. JDBC连接Mysql6 com.mysql.cj.jdbc.Driver
  3. 3. 备注

最近使用springboot2.x访问mysql数据库时,报错 java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized…

详情可以查看上一篇文章 解决JDBC连接数据库报错java.sql.SQLException: The server time zone value is unrecognized的问题

问题的根本原因在于mysql驱动的版本问题。不同版本的驱动使用的驱动类是不同的,具体如下:

com.mysql.jdbc.Driver 是 mysql-connector-java 5中的,

com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6以上中的

JDBC连接Mysql5 com.mysql.jdbc.Driver

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=

JDBC连接Mysql6 com.mysql.cj.jdbc.Driver

由于springboot2.x默认的驱动版本为8.0.x,高于5版本,因此要使用如下配置:

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?serverTimezone=Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=

注意 这里需要指定时区

?serverTimezone=Shanghai&

我们需要设定为东八区,也就是上海所在的时区,也可以直接指定东八区

?serverTimezone=GMT%2B8

备注

如果mysql-connector-java用的6.0以上的,如下:

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.13</version>
</dependency>

但是你的driver用的还是com.mysql.jdbc.Driver,就会报错:

Loading class 'com.mysql.jdbc.Driver'. This is deprecated. The new 
driver class is 'com.mysql.cj.jdbc.Driver'. 
The driver is automatically registered via the SPI 
and manual loading of the driver class is generally unnecessary.

此时需要把com.mysql.jdbc.Driver 改为com.mysql.cj.jdbc.Driver

文章目录
  1. 1. JDBC连接Mysql5 com.mysql.jdbc.Driver
  2. 2. JDBC连接Mysql6 com.mysql.cj.jdbc.Driver
  3. 3. 备注
Fork me on GitHub