使用mysql的新版驱动类(com.mysql.cj.jdbc.Driver)在存入时间时,发现相差8个小时,经检查发现数据库时区配置问题
解决办法有以下三种
一、mysql数据配置时区
set global time_zone='+08:00';
set time_zone = '+08:00';
检查配置
show variables like '%time_zone%';
这种修改在重启数据库后,会恢复成默认时区
二、配置jdbc链接
增加参数serverTimezone=GMT%2B8
spring.datasource.url: jdbc:mysql://localhost:3306/springboot_demo?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8
spring.datasource.username: root
spring.datasource.password: root123
spring.datasource.driver: com.mysql.cj.jdbc.Driver
三、修改mysql配置
修改 /etc/mysql/my.cnf
增加参数
default-time-zone='+08:00'
如果是阿里云RDS数据,登录阿里云帐号,RDS - 参数配置,找到“default_time_zone”,修改成“+08:00”
重启数据库即可
总结
建议采用方法二修改jdbc链接的方式,不需要重启数据库