解决Windows环境下的docker中修改了mysql的配置文件之后启动不了的问题

**

前情简介:

**
由于在docker中安装的mysql5.7中区分表的大小写,进入到mysql的命令行模式之后就修改配置文件,主要修改

lower_case_table_names=1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改之后就启动再也启动不起来了,说我配置文件改错了

2022-11-25 14:47:54+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
        command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.saFZWm1Kpy
        mysqld: [ERROR] Found option without preceding group in config file /etc/mysql/my.cnf at line 25!
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!
2022-11-25 14:50:14+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
        command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.iyJzMo87UW
        mysqld: [ERROR] Found option without preceding group in config file /etc/mysql/my.cnf at line 25!
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!
2022-11-25 15:45:39+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
        command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.7fGok4zsnQ
        mysqld: [ERROR] Found option without preceding group in config file /etc/mysql/my.cnf at line 25!
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!
2022-11-25 16:49:08+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
        command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.m1iwv7bEFF
        mysqld: [ERROR] Found option without preceding group in config file /etc/mysql/my.cnf at line 25!
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!
2022-11-25 16:53:49+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
        command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.WdeF98eP3C
        mysqld: [ERROR] Found option without preceding group in config file /etc/mysql/my.cnf at line 25!
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!

因为当时修改的docker客户端管理软件中mysql窗口修改的就是my.cnf。当我修改完重新启动后mysql就再也启动不起来了,提示我修改文件报错。这个时候container不启动的话,再也进不了命令行模式,也就修改不了那个配置文件了。难道就没有其他办法了么。不,下面就是我的解决办法。

**

解决问题

**

首先我们先找到docker下mysql的配置文件在什么位置,执行如下命令

docker inspect mysql5.7

在这里插入图片描述
如上图所示就是我们需要找的文件,在这个文件路径下去找mysql的配置文件和我们在命令行窗口中的文件大致一样。

"UpperDir": "/var/lib/docker/overlay2/1b11908b2e44ea27138e56e7e2361205af2b570fb1c42ea0a1a9cd4a107f1e64/diff"

但是同样还是会存在一个问题,就是如果直接在Windows下找这个文件路径是找不到的。因为docker在Windows下依赖的wsl的linux环境。
我们需要在资源管理器中输入以下命令,资源管理器也就是我们的文件管理,在地址栏里输入即可

\\wsl$\docker-desktop-data

在这里插入图片描述
如上图所示我们就进入到docker的wsl虚拟环境了,接下来我们就一层一层的往里找就可以了。

\\wsl$\docker-desktop-data\data\docker\overlay2

以上的路径和我们的一开始要找的文件路径稍微有点区别,我们一开始/var/lib/docker下,现在是在/data/docker下。

/var/lib/docker/overlay2/1b11908b2e44ea27138e56e7e2361205af2b570fb1c42ea0a1a9cd4a107f1e64/diff

在这里插入图片描述
我们一层一层向下找,如下图所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
到这里我们就找到mysql的配置文件,但是这个配置文件和docker中mysql的命令行模式下的配置稍微不一样,但确实就是这个文件,我们打开看一下这个文件的内容是和my.cnf完全一样。
在这里插入图片描述
正好就是我们添加的哪行,然后我们暂时先把这个配置删除后,就可以正常启动了。
在这里插入图片描述
这里为什么修改配置文件会导致mysql启动不起来,是因为我们修改错了,我按照一下添加俩行就可以正常启动了。

[mysqld] 
lower_case_table_names=1

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枣泥馅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值