徐善通的随笔

千里之行, 始于足下



docker 下修改 mysql sql_mode和配置文件


打开PowerShell

首先创建mysql容器,这里我们指定使用mysql5.7的版本

docker run -d -p 3306:3306 --name mysql-docker -e MYSQL_ROOT_PASSWORD=root mysql:5.7

创建成功,查看一下运行状态

docker ps

1564119765207152.png


可以看到我们的容器正在运行中,现在进入容器,查看一下配置文件


docker exec -it mysql-docker /bin/bash

cat /etc/mysql/my.cnf

1564119918321337.png

可以看到这里包含了两个目录下的文件,查看一下,mysql.conf.d下,发现有我们需要更改的文件

cat /etc/mysql/mysql.conf.d/mysqld.cnf

1564119968454943.png


可以看到这里并没有 sql_mode的配置,说明mysql使用了默认的配置,我们可以进入mysql查看一下,


mysql -u root -p

回车输入我们创建容器时设置的密码,也就是root,进入mysql 控制台,输入

show variables like '%sql_mode';

查看默认 sql_mode配置,可以看到默认的是

1564119992532032.png

这个时候我们就可以去更改配置文件了,输入

exit 退出mysql控制台,

然后我们再查看一下这个配置文件

cat /etc/mysql/mysql.conf.d/mysqld.cnf

把输出的内容复制一下,我们在本地新建一个同名文件,把内容粘贴进去,然后在 [mysqld]下面添加 sql_mode = 你的配置,比如:

1564120032254920.png

把这个文件保存一下,

然后切换到命令行,输入exit退出容器,

停止并删除docker-mysql容器,

docker stop mysql-docker
docker rm mysql-docker

然后我们修改下docker run 语句,把我们本地的配置文件映射覆盖到容器内部,重新配置一下容器

docker run -d -p 3306:3306 -v D:/mysql/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -v D:/mysql/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=root --name mysql-docker mysql:5.7

然后我们按照一开始的步骤,重新进入一下容器

docker exec -it mysql-docker /bin/bash

进入mysql

mysql -u root -p root

查看sql_mode是否被修改

 show variables like '%sql_mode';

可以看到已经修改成功

1564120080814726.png

大功告成,由于配置文件是由我们本地映射过去的,所以如果还需要改什么配置的话,直接更改我们本地的配置文件就好了


ps: 以上命令都是在powershell中完成的,cmd有可能不支持创建容器和进入容器的代码,docker 版本 18.03.1 for win



作者: 徐善通
地址: https://www.xstnet.com/article-82.html
声明: 除非本文有注明出处,否则转载请注明本文地址


我有话说



最新回复


正在加载中....

Copyrights © 2016-2019 醉丶春风 , All rights reserved. 皖ICP备15015582号-1