【问题标题】:How to add external my.cnf file to Percona server in Docker?如何将外部 my.cnf 文件添加到 Docker 中的 Percona 服务器?
【发布时间】:2016-12-05 16:07:45
【问题描述】:

我已经使用 Percona 创建了 docker 容器来执行这个命令:

docker run -v <path-to-files-on-host-machine>:/etc/mysql/conf.d 
--name percona -p 6604:3306 -e MYSQL_ROOT_PASSWORD=12345 -d percona/percona-server:latest \
    --innodb_data_file_path=ibdata1:10M:autoextend:max:1G --sql_mode='' --character-set-server=utf8 --collation-server=utf8_general_ci;

根据 DockerHub 上的documentation,我的主机中有带有my.cnf 的挂载目录作为Docker 容器中的/etc/mysql/conf.d

但是当我启动我的容器时,Percona 不会从我的自定义 my.cnf 中读取设置。此外,我尝试创建 my.cnf 错误以在启动时使 Percona 崩溃。但没有效果。

如何将自定义 my.cnf 附加到 Percona Docker 容器?

【问题讨论】:

  • 您是否在启用 SELinux 的情况下运行?
  • 我不知道。但我尝试了不同的主机系统:Windows 10 和 Ubuntu 14.04
  • 好的,所以执行到容器中并检查文件是否在您期望的位置
  • 当我去容器时:docker exec -u root -it percona /bin/bashcat /etc/mysql/conf.d/my.cnf 我在主机上得到 my.cnf 的内容
  • 没有线索,抱歉,检查包含的/etc/mysql/my.cnf 是否包含目录,但看不出为什么它不会...作为一种解决方法,您可以尝试将文件挂载为/etc/mysql/my.cnf 并隐藏提供的...但这是一个 hack

标签: docker percona my.cnf


【解决方案1】:

我已经通过这种方式解决了我的问题:

  • 使用附加的 STDIN 启动容器:docker start -i percona
  • 输出错误:警告:World-writable config file '/etc/mysql/conf.d/my.cnf' is ignored

所以my.cnf 有错误的权限。 我是这样解决的:chmod 755 /etc/mysql/conf.d/my.cnf

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 2019-06-10
    相关资源
    最近更新 更多