因為不同版本的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.這樣就完成了