mysql-connector-java 6.0.X serverTimezone 时区设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql-connector-java 6.0.X serverTimezone 时区设置相关的知识,希望对你有一定的参考价值。

mysql-connector-java 5.1.21 升级至6.0.3 ;java 读取时间与MySQL 数据库存储时间相差8个小时。如数据库存储的是2017-05-29 12:01:01 ;java代码获得2017-05-29 20:01:01;相差8个小时。该怎么设置。
jdbc:mysql://127.0.0.1:3306/spring?useUnicode=true&characterEncoding=UTF-8&relaxAutoCommit=true&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8&useSSL=false
以上serverTimezone设置成GMT%2B8可以解决问题。
之前一直serverTimezone=GMT不行。

参考技术A 可以通过修改my.cnf 在 [mysqld] 之下加 default-time-zone=timezone 来修改时区。如: default-time-zone = '+8:00' 修改完了记得记得重启msyql 注意一定要在 [mysqld] 之下加 ,否则会出现 unknown variable 'default-time-zone=+8:00'!

mysql-connector-java升级到6.0以后启动tomcat报错

mysql-connector-java升级到6.0以后启动tomcat报错

java.sql.SQLException: The server time zone value ‘?й???????‘ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

 

解决办法

在连接的url后加一个参数 serverTimezone=GMT (加了这个参数之后就能顺利链接数据库了),这里的时区可以根据自己数据库的设定来设置。

之后还可能会出现另一个错误,mysql新的安全性设置要求SSL连接,此处可以加一个参数userSSL=false,或者自己设置SSL也可以 

另外,6.0.2版本的driverClassName不再是原来的路径,改成com.mysql.cj.jdbc.Driver了

 

示例:

jdbc.driverClassName=com.mysql.cj.jdbc.Driver

jdbc.url=jdbc:mysql://192.168.1.2:3306/test?serverTimezone=GMT&userSSL=false

 

以上是关于mysql-connector-java 6.0.X serverTimezone 时区设置的主要内容,如果未能解决你的问题,请参考以下文章

MySQL Connector/J 6.x jdbc.properties 配置, mysql-connector-java-6.0.4.jar 异常

使用mysql-connector-java.jar连接MySql时出现:Error while retrieving metadata for procedure columns: java.sql

JDBC

java 通过eclipse编辑器用mysql尝试 连接数据库

springboot整合动态多数据源+分布式事务(亲测可用)

keycloak搭配mysql