时间说明
CST应该是指(China Shanghai Time,东八区时间) UTC应该是指(Coordinated Universal Time,标准时间)
问题原因
- 服务器时间问题
- docker时间问题
- MySQL时间问题
解决方案
1、系统时间问题
1)查看系统时间
date 或者 date -R
2)重新设置系统时间
2、docker时间问题
1)查看docker时间 docker exec [containerId] date
2)解决方法
方法一:共享主机的localtime
docker run –name -v /etc/localtime:/etc/localtime:ro
方法二:复制主机的localtime(解决问题)
docker cp /etc/localtime [containerId]:/etc/localtime
方法三:创建自定义的dockerfile
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo ‘Asia/Shanghai’ >/etc/timezone
3)重启MySQL后生效
3、MySQL时间问题
1)查看MySQL时间
select now();
2)临时解决方案
show variables like '%time_zone%';
set global time_zone = '+08:00'; // 修改mysql全局时区为北京时间,即我们所在的东8区
set time_zone = '+08:00'; // 修改当前会话时区
flush privileges;
3)永久解决
修改MySQL在本机挂载的配置文件,在[mysqld]下加入
default-time-zone = ‘+08:00’
4)重启MySQL后生效