Docker中mysql容器时区问题

Posted tom的猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker中mysql容器时区问题相关的知识,希望对你有一定的参考价值。

1.适用对象
mysql官方镜像
执行命令
# docker启动命令
docker run --name changle-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=changle@1999 -e MYSQL_DATABASE=changle -e TZ=Asia/Shanghai -d mysql:5.6 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-time_zone=\'+8:00\'

参数说明:

MYSQL_ROOT_PASSWORD : 设置mysql数据库root的密码
MYSQL_DATABASE : 启动时创建数据库
TZ=Asia/shanghai : 设置容器时区
character-set-server : 服务器字符集,在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集。
character-set-database : 数据库字符集
character-set-table : 数据库表字符集
collation-server : 排序规则字符集
default-time_zone : mysql的时区

原文链接:https://blog.csdn.net/samsara_x/java/article/details/85316191

2.

转载于 https://www.cnblogs.com/jhxxb/p/13305671.html

https://www.cnblogs.com/shisanye/p/13926175.html

直接设置容器时区

# 查看容器 ID
docker ps -a

# 进入容器,Ctrl+P+Q 退出容器
docker exec -it 容器ID /bin/bash

EDT(Eastern Daylight Time - 美国东部夏令时)

CST(Central Standard Time - 中央标准时间)

复制代码
# 查看
date -R
timedatectl

# 设置
tzselect

timedatectl set-timezone \'Asia/Shanghai\'

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

rm /etc/localtime
echo "Asia/Shanghai" > /etc/timezone
复制代码

 

容器时间和宿主机同步

# 在 run 时挂载宿主时间配置
-v /etc/localtime:/etc/localtime

# 复制宿主机 localtime 配置
docker cp /etc/localtime 容器ID:/etc/localtime

 

其它

# Java 应用,在启动 jar 包时添加环境变量
-Duser.timezone=GMT+08

# MySQL 容器时区,run 时添加参数
-e TZ="Asia/Shanghai"

以上是关于Docker中mysql容器时区问题的主要内容,如果未能解决你的问题,请参考以下文章

使用docker容器的错误时间戳:时区设置无效

docker mysql 时区 8 小时

如何更改 docker 容器中的时区?

centos中修改docker容器的时区

解决Docker容器时区不一致的问题

docker 构建基础镜像 时区问题