Mysql数据库存储数据时间与系统获取时间不一致
最近进行项目开发,发现存在数据库内的数据和系统查询到的数据相差8小时
发现有2种比较合适的方法
(一)修改mysql服务的区时
centos进入mysql查看/修改时区
1.输入以下命令进入mysql
mysql -uroot -p
然后输入 password
2.查看mysql上的当前时间
select curtime();
3.查看时区
show variables like "%time_zone%";
#time_zone如果是system说明mysql使用system的时区(东八区获取到的时间会实际时间少4小时,需要在程序application.yml),system_time_zone说明system使用CST时区
4.设置区时(time_zone)为东八区
set time_zone='+8:00';
上图我的时间是已经执行设置好后的显示
(二)在程序中设置mysql的区时
--针对application 可以设置:
serverTimezone=Asia/Shanghai
与修改服务器上mysql区时效果一致
注:
生产服务器尽量不要改动,建议大家在程序中进行区时设置。