最近使用SpringBoot,Mysql开发一套web系统,实体类往数据库保存的时间比系统当前时间晚13小时。以下查阅问题的全过程,开始尝试的方法均失败,最后找到问题的原因是mysql-connector-java.jar驱动包的版本问题并解决。
以下是尝试的解决办法:
(1)修改Mysql数据库的timezone,修改为CST或者GMT+8,再重启mysql服务,(此方法失败!)
set global time_zone = '+8:00';
flush privileges; #立即生效
(2)修改Mysql的配置文件mysql.cnf,增加以下配置项。(重启mysql后,此方法成功!)
# vim /etc/my.cnf ##在[mysqld]区域中加上
default-time-zone = '+8:00'
(3)在项目的配置文件中修改jdbc的数据库连接url,后增加&serverTimezone=Asia/Shanghai(重启服务,此方法成功!)
后来查看开发环境使用的mysql-connector-java.jar包版本是8.0.17,mysql-connector-java的8.0后的版本会有时区问题。
之前开发的系统使用5.14的驱动,是没有时区问题的,到此查明了原因,问题也解决!