繁体   English   中英

/etc/mysql/my.cnf更改后,MySQL容器崩溃,如何重新编辑?

[英]MySQL container crash after /etc/mysql/my.cnf change, how to edit back?

我更改了一些mysql配置设置并设置了错误的内容,现在Docker容器不断重新启动,并且找不到在主机文件系统中进行编辑的my.cnf文件。 我尝试了aufs / diff文件夹,但到目前为止找不到它。 还尝试了:

find / -name my.cnf -exec nano {} \;

但是它不会显示我更改过的文件。 我试图将config.v2.json更改为启动/bin/bash而不是mysqld并重新启动了docker,但它使用正式的mysql容器映像启动了mysqld (由于主管或其他原因?)。

我正在为您的问题看到两种可能的解决方案:

绕过MySQL映像的ENTRYPOINT

通过运行docker images查找映像名称,然后运行:

docker run -it --entrypoint="/bin/sh" OPTIONS image

这将带您进入容器内的bash,然后从那里可以执行要查找my.cnf文件的所有命令。 尽管我不知道是否可以从那里编辑文件,但是保存并尝试再次运行它会起作用。 我没试过

删除旧图像并使用正确的方法编辑my.cnf文件

通过运行以下内容找到您的映像名称: docker images ,然后通过运行docker rmi <image_name>将其删除

MySQL Dockerhub上检查文档以获取默认的MySQL映像,这很简单,我引用:

使用自定义MySQL配置文件MySQL启动

配置在文件/etc/mysql/my.cnf中指定,该文件又包括在/etc/mysql/conf.d目录中找到的以.cnf结尾的所有文件。 该目录中文件的设置将增加和/或覆盖/etc/mysql/my.cnf中的设置。 如果要使用自定义的MySQL配置,则可以在主机上的目录中创建备用配置文件,然后将该目录位置安装为mysql容器中的/etc/mysql/conf.d。

如果/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的组合启动设置,后者的设置优先。

从那时起,如果您在主机上创建my.cnf文件,那么您将再也不会遇到此问题,因为您可以根据需要多次编辑该文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM