针对这个问题,我的解决方案如下:
1. 查看MySQL容器的默认时区
首先我们需要确认MySQL容器的默认时区,可以通过以下步骤查看:
-
进入MySQL容器
docker exec -it mysql_container_name bash
这里的mysql_container_name
为你创建的MySQL容器的名称,如果不知道可以通过docker ps
命令查看。 -
进入MySQL命令行
mysql -u root -p
这里的root
为用户名,-p
表示需要输入密码。 -
查看时区
SELECT @@global.time_zone;
这里可以看到MySQL容器的默认时区。
2. 修改MySQL容器的时区
现在我们已经确认了MySQL容器的默认时区,接下来就是修改时区。
- 创建一个新的MySQL容器
在创建MySQL容器时需要增加-e TZ=Asia/Shanghai
参数,将时区设置为东八区。
docker run --name mysql_container_name -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest -e TZ=Asia/Shanghai
注意:这里的mysql_container_name
为你给容器命名的名称,-e
表示设置环境变量,-d
表示后台运行。
- 进入MySQL容器,修改时区
docker exec -it mysql_container_name bash
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
exit
这里的mysql_container_name
为你创建的MySQL容器的名称,cp
命令将/usr/share/zoneinfo/Asia/Shanghai
文件复制到/etc/localtime
,从而修改时区。
- 重启容器
docker restart mysql_container_name
- 验证时区是否修改成功
docker exec -it mysql_container_name bash
mysql -u root -p
SELECT @@global.time_zone;
这里的mysql_container_name
为你创建的MySQL容器的名称,可以看到时区已经修改为东八区。
示例说明
示例1:查看MySQL容器默认时区
假如我们创建了名为mysql_container
的MySQL容器,现在需要查看MySQL容器的默认时区。
-
进入MySQL容器
docker exec -it mysql_container bash
-
进入MySQL命令行
mysql -u root -p
-
查看时区
SELECT @@global.time_zone;
这里可以得出MySQL容器的默认时区。
示例2:修改MySQL容器的时区
假设我们创建了一个名为mysql_container
的MySQL容器,需要将其时区修改为东八区。
-
创建新的MySQL容器
docker run --name mysql_container -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest -e TZ=Asia/Shanghai
-
进入MySQL容器,修改时区
docker exec -it mysql_container bash
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
exit -
重启容器
docker restart mysql_container
-
验证时区是否修改成功
docker exec -it mysql_container bash
mysql -u root -p
SELECT @@global.time_zone;
可以看到时区已经修改为东八区。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker的MySQL容器时区问题修改 - Python技术站