首页 > 技术文章 > 修改docker中MySQL5.7.34(官方镜像)配置文件

lambdadog 2021-10-27 23:41 原文

因为不同版本的MySQL镜像的配置文件所在目录以及文件名可能不同(所以我在网上找了很多文章都没有解决到我的问题/(ㄒoㄒ)/~~),本文只针对MySQL5.7.34官方镜像进行讨论,以把"lower_case_table_names"的值从0修改为1为例。
1.访问下面这个网站可以获取到拉取docker镜像的命令

hub.docker.com

拉取MySQL5.7.34官方镜像的命令为

docker pull mysql:5.7.34

2.启动容器

docker run --name mysql5734 -p 3306:3306 --privileged=true -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.34

3.先看一眼当前"lower_case_table_names"值为多少

[root@localhost ~]# mysql -uroot -h127.0.0.1 -p123456
MySQL [(none)]> show variables like 'lower_case_table_names';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 0     |
+------------------------+-------+
1 row in set (0.001 sec)

4.进入到该docker容器内部

docker exec -it mysql5734 /bin/bash

5.容器内部默认是没有vim的,所以需要安装vim

# 更新
apt-get update
# 安装vim
apt-get install vim

6.找一下配置文件的位置,my.cnf和mysqld.cnf我都搜了一下,都打开看了之后确认该容器的配置文件是./etc/mysql/mysql.conf.d/mysqld.cnf

root@e0a01626cd69:/# find -name my.cnf
./etc/alternatives/my.cnf
./etc/mysql/my.cnf
./var/lib/dpkg/alternatives/my.cnf
root@e0a01626cd69:/# find -name mysqld.cnf
./etc/mysql/mysql.conf.d/mysqld.cnf

7.进入该目录,打开配置文件

# 进入目标目录
cd etc/mysql/mysql.conf.d/
# 打开配置文件
vim mysqld.cnf

8.在配置文件中的[mysqld]下方增加一行"lower_case_table_names=1"

9.退出容器内部并重启容器

# 退出容器内部
exit
# 重启容器
docker restart mysql5734

10.再看一眼当前"lower_case_table_names"值为多少

[root@localhost ~]# mysql -uroot -h127.0.0.1 -p123456
MySQL [(none)]> show variables like 'lower_case_table_names';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 1 |
+------------------------+-------+
1 row in set (0.001 sec)

11.这样就完成了

推荐阅读