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


    **

    前情简介:

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

    lower_case_table_names=1
    
    • 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!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

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

    **

    解决问题

    **

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

    docker inspect mysql5.7
    
    • 1

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

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

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

    \\wsl$\docker-desktop-data
    
    • 1

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

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

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

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

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

    [mysqld] 
    lower_case_table_names=1
    
    • 1
    • 2

    在这里插入图片描述

  • 相关阅读:
    拼多多败诉:砍价始终差0.9%侵犯知情权,被判赔400元
    Vuex快速入门
    vue中 process.env 对象为空对象问题
    树的孩子兄弟链存储表示创建、遍历等算法
    Windows mysql 5.7 msi版、mysql 8.0 msi版下载、安装教程,附详细图文
    python第二节PyCharm创建项目和关联Anaconda以及设置PyCharm以及PyCharm常用快捷键
    [附源码]java毕业设计圆梦山区贫困学生助学系统
    基于Matlab模拟用于天气观测的极化雷达回波(附源码)
    ENVI IDL:OMI-NO2产品均值计算与可视化(附Python代码)-年、季、月均值计算
    【Pytorch + AlexNet + torchsummary】torchsummary 查看网 及 各层输出的 feature map 尺寸
  • 原文地址:https://blog.csdn.net/u011447164/article/details/128046919