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"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM