docker下安装的mysql修改配置文件my.cnf后重启失败解决方案

我这里出现的问题是,mysql5.7使用groupby报错,原因见上一篇文章

根据查到的解决方案,运行状态进入容器,在docker中修改/etc/mysql/my.cnf文件,退出容器,重启。

找到要修改的容器

docker ps -a

进入运行的容器

docker exec -it 容器ID sh

进入

cd /etc/mysql/

修改

vi my.cnf

正确结果应该是
my.cnf文件截图
但是我第一次编辑的时候,没有[mysqld]那一行,所以
退出容器

exit

重启

docker restart 容器ID或者容器名

重启失败,知道自己编辑错了想重新修改,尝试docker exec -it 容器ID sh或者docker attach 容器id都不可以,因为现在容器不是运行状态。来自灵魂的拷问,停止了我就不能修改配置文件了吗?难倒我要运行一个新的实例吗?

不!

那么问题来了,怎么再次修改my.cnf呢

参考docker+mysql 更改配置后重启不了的解决方案,我使用方法一直接找到配置文件位置进行修改,可以,成功了。方法二不可,因为我从容器中拷贝出来的文件都是空的,或者是我的操作有问题?

在当前主机中存放了docker容器中的配置信息(一般默认目录是:/var/lib/docker/overlay/),那只要找到这个配置文件,修改后就可以重新启动了

官方MySQL Docker镜像是一个非常方便的工具,可以快速地部署MySQL数据库。默认情况下,官方MySQL Docker镜像中包含的MySQL服务器配置是在启动容器时使用环境变量进行动态调整的。这通常能够满足大多数情况,但在有些情况下,我们可能需要对MySQL服务器进行更加详细的配置,这时我们就需要使用自定义的配置文件my.cnf。 自定义配置文件my.cnf可以包含MySQL服务器的各种配置选项,例如缓存、日志、安全、性能调优等。我们可以根据自己的需求定义这些选项,并将my.cnf复制到Docker容器中。在启动容器时,我们使用-v选项将我们自定义的my.cnf文件映射到容器内的/etc/mysql/my.cnf路径,覆盖默认配置文件。 一个简单的例子,在本地新建一个my.cnf文件,并添加以下代码: [mysqld] innodb_buffer_pool_size=2G 然后使用docker run命令启动MySQL容器: docker run --name some-mysql -v /path/to/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag 请确保/my.cnf文件所在的主机路径(path/to/my.cnf)已经存在,否则容器将无法启动。 以上就是使用自定义配置文件my.cnf的基础内容。但需要注意的是,在自定义配置文件中,我们不应该使用与容器所在主机或网络环境不一致的IP地址或主机名,否则可能导致MySQL服务器无法正常运行。最好使用通用的IP地址(0.0.0.0)或者localhost。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值