CentOS中Docker的MySQL更改配置后重启不了的两种解决方式
2021/5/20 2:29:31
本文主要是介绍CentOS中Docker的MySQL更改配置后重启不了的两种解决方式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
项目要用到分库分表,然后自己手动更改了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: [ERROR] 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正常启动
这篇关于CentOS中Docker的MySQL更改配置后重启不了的两种解决方式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-18Mysql安装入门:新手必读指南
- 2024-11-18MySQL事务MVCC原理入门详解
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料