Docker中mysql容器時區問題
阿新 • • 發佈:2020-07-22
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的密碼
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
直接設定容器時區
# 檢視容器 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"