【发布时间】:2018-04-21 19:43:39
【问题描述】:
我有一个 mysql 5.7 docker 容器。当我运行 mysql 命令时:
SELECT now();
它显示到我当前时间的时间 -3 小时(这是合乎逻辑的)。我想在配置文件中设置时区。按照https://hub.docker.com/_/mysql/ 中的文档,我在docker-compose.yml 文件中创建了一个卷,如下所示:
mysqldb:
image: mysql:5.7.21
container_name: mysql_container
ports:
- "3306:3306"
volumes:
- ./.docker/etc/mysql/custom.cnf:/etc/mysql/conf.d/custom.cnf
当我浏览容器内的文件时,文件custom.cnf 就在那里。
在该文件中,我尝试了一些我找到的解决方案,例如:
[mysqld]
default_time_zone='Europe/Sofia'
或者一个不太优雅的折衷解决方案,因为该区域必须每年更换两次(夏季/冬季):
[mysqld]
default_time_zone='+03:00'
但没有一个有效。我有一种感觉,这个文件根本没有被 mysql 加载,因为如果我尝试在其中放置无效的配置,也没有任何反应(容器正常启动)。 有什么建议吗?
【问题讨论】:
-
这个问题不重复。我不想设置 docker 容器的时间,但更喜欢在 .cnf 文件中设置 mysql 时间,就像我能够在它的 .ini 文件中使用 PHP 一样。
标签: mysql docker docker-compose my.cnf