问题:windos下使用docker安装mysql5.7.37,按照百度进行配置文件挂载并修改sql_mode,但是配置并不生效。
安装完mysql之后,配置文件和数据都已经正常挂载,并且也修改的配置文件,在[mysqld]下添加了
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
但是重启mysql容器 发现依然不生效!!!!
最开始怀疑配置文件找错,于是利用百度来找真正的配置文件,参考:https://www.cnblogs.com/chen2ha/p/15914157.html。
找到mysql容器的配置文件地址为:/etc/mysql/mysql.conf.d/mysql.cnf。
找到之后重新构建容器,只对这个配置文件进行挂载,用于测试
docker run --name mysql5 -p 3305:3306 -e MYSQL_ROOT_PASSWORD=root -v D:\Document\docker\mysql5\config\mysql\mysql.cnf:/etc/mysql/mysql.conf.d/mysql.cnf -d mysql:5.7.37
后来重启后,依然不生效。到此已经没有什么其他法子了,只能用最笨的方法了,不进行配置文件挂载,直接在容器里边进行配置修改。
步骤:
1、启动容器,只进行数据挂载。
2、进入容器。
3、更新apt,并安装vim。
4、修改配置文件并保存。
5、重启容器
docker run -p 3305:3306 -e MYSQL_ROOT_PASSWORD=root -v D:\Document\docker\mysql5\data\mysql:/var/lib/mysql --name mysql5 -d mysql:5.7.37
docker exec -it mysql5 bash
apt update
apt-get install vim
vi /etc/mysql/mysql.conf.d/mysql.cnf
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
重启容器