原因:引起数据库时间与系统时间不一致的问题主要由数据库时区引起。
解决方案:
一、检查mysql数据库时区是否正确。
show variables like '%time_zone%';
system_time_zone : 表示系统使用的时区是 UTC
time_zone: 如果time_zone的值为SYSTEM表示 MySQL 采用的是系统的时区。也就是说,如果在连接时没有设置时区信息,就会采用这个时区配置。
修改时区:
1、通过sql语句修改全局时区
set global time_zone = '+8:00'; ##修改mysql全局时区为北京时间,即我们所在的东8区
flush privileges; #立即生效
2、通过修改my.cnf配置文件来修改时区
# vim /etc/my.cnf ##在[mysqld]区域中加上
default-time_zone = '+8:00'
# /etc/init.d/mysqld restart ##重启mysql使新时区生效
二、修改jdbc url连接数据库参数
添加serverTimezone=Asia/Shanghai参数,将时区改为上海时区后数据库时间与系统时间一致。例如:
url: jdbc:mysql://ip:端口号/数据库名?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai