关于docker:CentOS中Docker的MySQL更改配置后重启不了的两种解决方式

59次阅读

共计 1193 个字符,预计需要花费 3 分钟才能阅读完成。

我的项目要用到分库分表,而后本人手动更改了 Docker 中 MySQL 的配置文件 my.cnf。
配置结束之后应用 Docker 进行部署,运行 docker restart mysql 后没有胜利启动。
问题排查,打印日志

docker logs mysql

报错如下:

[ERROR] [Entrypointl: mysqld failed while attempting to check config command was : mysqld --vervbose --help
[ERROR] Found option without preceding group in config file /etc/mysql/ my cnf at line 27 mysql Fatal error in defaults handling. Program aborted
[ERROR] [Entrypoint]: mysqld failed while attempting to check config command was mysqld --verbose --help mysqld: [ERROR] Found option without preceding group in config file /etc/mysql/my.cnf at line 27!mysqld: [ERRORI Fatal error in defaults handling. Program aborted!

随后我打算执行

docker exec -it mysql /bin/bash

先进入 Docker 容器之后再批改回原有配置,然而发现容器未启动(Container not started),因为 exec 执行命令只能用于已在运行的容器!!!

解决形式

形式一:理论文本批改配置

首先以后 Linux 主机中已寄存了 docker 容器中的配置信息(个别挂载默认目录是:/var/lib/docker/overlay/),其次只有找到这个挂载目录的配置文件,批改后就能够重新启动了
这里不过多赘述形式一。

形式二:间接批改配置文件

应用 docker cp 命令,把 docker 容器中的配置文件复制到 Linux 主机中来,接着批改完之后再复制回 docker 容器中去,就能够了实现配置文件的回滚了
具体操作(形式二)

1、将 docker 容器内的文件拷贝至 Linux 主机中

docker cp mysql:/etc/mysql/my.cnf .

注:. 代表是当前目录,我操作时当前目录是 /root,且 mysql:/etc/mysql/my.cnf 即为配置文件地址,上述代码操作实现之后 my.cnf 配置文件就会复制到以后操作目录下

2、vim 批改配置文件中出错的中央,从新批改回来

3、复制批改后的配置文件到 docker 容器中去

docker cp my.cnf mysql:/etc/mysql/my.cnf

4、最初重启容器实例,使批改后的配置文件失效

docker restart mysql

5、配置文件失效,MySQL 失常启动

正文完
 0