Docker 修改 MySQL 配置文件后无法启动 MySQL 容器

一、事故回顾

情况是这样的,需要修改数据库配置文件,取消数据库大小写敏感 lower-case-table-names=1,于是进入到容器修改了mysql.cnf文件,在【mysqld】下添加了如下命令;

# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA

lower-case-table-names=1   # 新加的
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

然后重启MySQL容器,结果重启失败,报了错误,加错地方了。之所以会这样子是因为你没找对的不是容器里mysql.cnf配置文件。

二、解决方法

# docker inspect [mysql id]   # 容器ID
docker inspect 699d

file

[root@quant mysql]# cd /var/lib/docker/overlay2/7178df4495618dd1086e56268f3e9d47eedce8f65d59ec7d7d5a6aeef29c2914/
[root@quant 7178df4495618dd1086e56268f3e9d47eedce8f65d59ec7d7d5a6aeef29c2914]# ls -l
total 16
drwxr-xr-x 8 root root 4096 Mar 19  2021 diff
-rw-r--r-- 1 root root   26 Mar 19  2021 link
-rw-r--r-- 1 root root  347 Mar 19  2021 lower
drwx------ 3 root root 4096 Nov 15 10:12 work

[root@quant diff]# ls -l
total 40
drwxr-xr-x 5 root root 4096 Nov 15 01:26 etc
drwx------ 2 root root 4096 Nov 15 01:31 root
drwxr-xr-x 3 root root 4096 Mar 12  2021 run
drwxrwxrwt 2 root root 4096 Nov 15 01:26 tmp
drwxr-xr-x 5 root root 4096 Mar 11  2021 usr
drwxr-xr-x 5 root root 4096 Mar 11  2021 var

然后找到MySQL的配置文件进行修改

[root@quant etc]# pwd
/var/lib/docker/overlay2/7178df4495618dd1086e56268f3e9d47eedce8f65d59ec7d7d5a6aeef29c2914/diff/etc
[root@quant etc]# ls -l
total 16
drwxr-xr-x 2 root root 4096 Nov 15 01:26 alternatives
drwxr-xr-x 2 root root 4096 Nov 15 22:55 mysql
drwxr-xr-x 2 root root 4096 Nov 15 01:26 vim

去掉加的那段内容 lower-case-table-names=1,然后你现在就可以启动你的容器了。

为者常成,行者常至