使用自定义MySQL配置文件的Docker总是失败

时间:2019-07-11 08:36:59

标签: mysql docker

Follow the documentation here,Always fail

  

使用自定义MySQL配置文件   MySQL的默认配置可以在/etc/mysql/my.cnf中找到,该目录可以包含!includedir附加目录,例如/etc/mysql/conf.d或/etc/mysql/mysql.conf.d。请检查mysql映像本身中的相关文件和目录,以获取更多详细信息。

     

如果/my/custom/config-file.cnf是自定义配置文件的路径和名称,则可以像这样启动mysql容器(请注意,此命令仅使用自定义配置文件的目录路径):

     

$ docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD = my-secret-pw -d mysql:tag   这将启动一个新的容器some-mysql,其中MySQL实例使用/etc/mysql/my.cnf和/etc/mysql/conf.d/config-file.cnf中的组合启动设置,其中后者的设置优先

     

不带cnf文件的配置   可以将许多配置选项作为标志传递给mysqld。这将使您可以灵活地自定义容器,而无需cnf文件。例如,如果要更改所有表的默认编码和排序规则以使用UTF-8(utf8mb4),则运行以下命令:

     

$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD = my-secret-pw -d mysql:tag --character-set-server = utf8mb4 --collat​​ion-server = utf8mb4_unicode_ci   如果您想查看可用选项的完整列表,请运行:

我的Docker版本18.09.7,内部版本2d0083d

我运行的命令

  

docker run --name mysql2 -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD = root -d mysql:8.0.16

我的自定义配置文件

[mysqld]
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

1 个答案:

答案 0 :(得分:0)

我找到了原因。因为我将mysql.cnf权限设置为777。