直接回答:容器默认时区是 UTC,启动时加上 -e TZ=Asia/Shanghai,或者在 MySQL 配置文件里设置 default-time-zone,就能让时间变成东八区。

背景

时区是使用了世界标准时间(UTC)。因为在中国使用,所以需要把时区改成东八区的

或者启动容器时设置

-e TZ=Asia/Shanghai

永久修改

进入容器

1
docker exec -it mysql5.7 bash
  • 查看当前时区
1
date -R

修改时区

1
2
3
4
5
6
7
cp /usr/share/zoneinfo/PRC /etc/localtime
# 或者
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 退出
exit
# 重启容器生效
docker restart mysql5.7

临时修改-重启失效

  • 查看时区select now();

  • 修改时区为北京时间

    1
    2
    3
    4
    5
    6
    7
    8
    mysql> set global time_zone = '+8:00';
    Query OK, 0 rows affected (0.00 sec)

    mysql> set time_zone = '+8:00';
    Query OK, 0 rows affected (0.00 sec)

    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

这篇笔记整理自我自己的实践记录,如果做法有出入,或者你踩过别的坑,欢迎到留言板一起聊聊。

站内搜索

没有找到内容!