前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS中Docker的MySQL更改配置后重启不了的两种解决方式

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

原创
作者头像
全栈开发Dream
修改2021-05-17 11:07:19
4.6K0
修改2021-05-17 11:07:19
举报
文章被收录于专栏:全栈开发Dream

项目要用到分库分表,然后自己手动更改了服务器中的Docker中MySQL的配置文件my.cnf。

配置完毕之后使用Docker进行部署,运行docker restart mysql后没有成功启动。

问题排查,打印日志

代码语言:txt
复制
docker logs mysql

报错如下:

代码语言:txt
复制
[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!

随后我打算执行

代码语言:txt
复制
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主机中
代码语言:txt
复制
docker cp mysql:/etc/mysql/my.cnf .

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

2、vim修改配置文件中出错的地方,重新修改回来
3、复制修改后的配置文件到docker容器中去
代码语言:txt
复制
docker cp my.cnf mysql:/etc/mysql/my.cnf
4、最后重启容器实例,使修改后的配置文件生效
代码语言:txt
复制
docker restart mysql
5、配置文件生效,MySQL正常启动

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决方式
    • 方式一:实际文本修改配置
      • 方式二:间接修改配置文件
        • 1、将docker容器内的文件拷贝至Linux主机中
        • 2、vim修改配置文件中出错的地方,重新修改回来
        • 3、复制修改后的配置文件到docker容器中去
        • 4、最后重启容器实例,使修改后的配置文件生效
        • 5、配置文件生效,MySQL正常启动
    相关产品与服务
    云服务器
    云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档