最近,Mysql在使用的过程中发现了一个问题,时间总是与当前时间,相差8小时,比如现在是早上8点,那么数据库里存储的就是当天00:00;查看数据库,发现我设置的时间的默认值为Now()
这个时候我在数据库里直接执行。发现时间确实是差了8小时;
- show variables like '%time_zone%';
- SELECT NOW()
如何解决呢?
这里有三种解决方式:
一、进入mysql控制台
mysql -u root -p ****
执行如下命令即可,这时候我们再执行select now();发现时间并没有变回来
这时候就需要我们断开数据连接,重新链接一下就行啦~
- SET time_zone = "+08:00";
- SET global time_zone = "+08:00";
- flush privileges;
二、修改my.cnf
我们同样的进入到,mysql所在宿主机,编辑mysql配置文件
/etc/mysql/mysql.conf.d/mysqld.cnf
我们在[mysqld]下面加入这样的一句话:
default-time-zone=Asia/Shanghai
三、修改mysql链接信息
一般我们使用springBoot项目,需要在application.properties中配置mysql connector信息
在jdbc链接信息里设置serverTimezone=Asia/Shanghai