com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别 serverTimezone设定
最近使用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