docker中的mysql配置不生效,如何查找使用的配置文件

启动mysql的docker命令如下:
docker run -d -e MYSQL_ROOT_PASSWORD=admin -p 3306:3306 -v /data/mysql/my.cnf:/etc/mysql/conf.d/ -v /data/mysql/data/:/usr/local/mysql/data --name mysql mysql:5.7
mysql启动没问题,但是项目包再运行过程中一直报错,提示使用group by等等出现的错误,如下图:
在这里插入图片描述

这是由于sql_mode的值导致的,所以我们查询了 select version(), @@sql_mode ; 如下图:在这里插入图片描述
要把ONLY_FULL_GROUP_BY去掉,所以需要修改配置文件,办法就是修改my.cnf的配置,那么如何mysql当前使用的my.cnf呢?
首先,我们要进入mysql容器:
docker exec -it mysql bash
然后查找mysql容器中使用到的my.cnf, 执行:
mysql --help | grep my.cnf ,如下图:
在这里插入图片描述
我们可以先找第一个文件,cat /etc/mysql/my.cnf 发现/etc/mysql/my.cnf 的文件末尾有这么两行 ,就是mysql目前使用的配置路径
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
在这里插入图片描述
我们到这里,不难发现这个/etc/mysql/conf.d/ 就是我们docker run 的时候隐射到内部的文件。
所以这个时候,修改下我们映射到内部的这个cnf文件
在这里插入图片描述
添加[mysqld]下面
在这里插入图片描述
修改完成之后,我们再重启下mysql容器
docker restart mysql

再测试一下,项目包就不再报错,配置文件生效,大功告成。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐