现象
发现mysql语句比较日期时候,凌晨被当作下一天
分析
mysql 服务器时区按初始设置是使用系统时区,而由于mysql安装于docker,docker容器的时区默认为+0:00时区。
处理
修改mysql服务时区
1 select now(); 查看现在的时间,可以见到跟实际时间差8小时
2 show variables like "%time_zone%"; 可以看到时区设置,可以看到是使用SYSTEM时间
3 set global time_zone = '+8:00'; 修改mysql全局时区为北京时间,即我们所在的东8区
4 set time_zone = '+8:00'; 修改当前会话时区
5 flush privileges; 立即生效
6 重新查看时间和时区设置,可看到已正常