美文网首页
通过Docker修改运行中的MySQL容器的时区

通过Docker修改运行中的MySQL容器的时区

作者: 囝囝123 | 来源:发表于2024-01-22 10:57 被阅读0次

    当前情况

    宿主机的时区要是CST,即东八区。
    MySQL所在的容器是UTC
    在MySQL内执行select now()显示的时间也是UTC。

    1. 通过docker cp修改容器时间
      如下即可将容器的时间改为和宿主机同样的时区
    sudo docker cp /etc/localtime 231458904a77:/etc/localtime
    

    这个时候如果报错了

    [root@VM-0-8-centos /]# sudo docker cp /etc/localtime mysql:/etc/localtime
    Successfully copied 1.54kB to mysql:/usr/share/zoneinfo/UCT
    Error response from daemon: invalid symlink "/usr/share/zoneinfo/UCT" -> "../usr/share/zoneinfo/Asia/Shanghai"
    
    

    即使重启 容器 时间也 没有改变
    更改命令

    docker cp /usr/share/zoneinfo/Asia/Shanghai 70ec41893d66:/etc/localtime
    

    此时MySQL所在的容器时间如下,已经是东八区

    ➜  ~ ✗ sudo docker exec -it 231458904a77 /bin/bash         
    root@231458904a77:/# date
    Thu Jan 28 10:56:42 CST 2021
    

    但是,MySQL服务的时间还不是东八区

    1. 重启MySQL容器
    sudo docker restart 231458904a77
    
    

    执行完命令之后查看,则可以发现宿主机、MySQL所在容器、MySQL服务三个时区都是一致的了

    也可以在 创建容器的时候 增加参数

    -e TZ=Asia/Shanghai 
    

    相关文章

      网友评论

          本文标题:通过Docker修改运行中的MySQL容器的时区

          本文链接:https://www.haomeiwen.com/subject/vdyyodtx.html