docker 下mysql时区8个小时的解决办法及JDBC连接数据库mysql serverTimezone useSSL时差

星期四, 2019-06-20 | Author: Lee | JAVA-and-J2EE, linux | 6,744 views

问题起因:

1.应用启动初始化数据看了下插入的数据时间和本地时间不一致 差了8个小时

解决方法:
网上检索之发现最终引起的原因是新版JDBC驱动指定的serverTimezone的原因

1.修正docker下mysql时区的问题

	show variables like '%time_zone%';
 
	set global time_zone='Asia/Shanghai';
 
	set  time_zone='Asia/Shanghai';
 
	flush privileges;

实际上这么操作后,如果无法生效的话,还是要修改配置文件并重新启动mysql使其生效

docker下的路径在 /etc/mysql/conf.d/my.cnf

	修改my.cnf
 
	default-time-zone ='Asia/Shanghai'

查看 select now(); 等 如下图

2.因使用的新版的驱动需要调整的部分

驱动包用的是mysql-connector-java-8.0.15.jar (使用springboot2.1.4版本)
新版的驱动类改成了com.mysql.cj.jdbc.Driver
新版驱动连接url也有所改动

spring.datasource.url=jdbc:mysql://localhost:3306/data?useUnicode\=true&characterEncoding\=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 
更换成 serverTimezone=Asia/Shanghai  或者 serverTimezone=GMT%2B8 即可
jdbc:mysql://localhost:3306/data?useUnicode\=true&characterEncoding\=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai

now,问题得以解决

Tags: ,

文章作者: Lee

本文地址: https://www.pomelolee.com/1883.html

除非注明,Pomelo Lee文章均为原创,转载请以链接形式标明本文地址

No comments yet.

Leave a comment

Search

文章分类

Meta