Docker 中修改Mysql 数据库的 only_full_group_by 模式

执行查询,更新等 Sql 时,会出现下面的提示:

[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY
clause and contains nonaggregated column
‘information_schema.PROFILING.SEQ’ which is not functionally dependent
on columns in GROUP BY clause; this is incompatible with
sql_mode=only_full_group_by

产生的原因是:5.7版本的数据库设置了 only_full_group_by 模式
解决方式只有一种,只有一种,只有一种,修改配置文件,但是在docker中的数据库会比普通的难改一些,需要多出几步。

docker images : 列出本地镜像
docker exec -it mysql-sucai bash 进入mysql 镜像
现在就进入容器的命令行模式
mysql -u -root -p 登录进入mysql
cat /etc/mysql/mysql.conf.d/mysqld.cnf 查看mysql容器的配置文件
在最后加入一行命令,需要使用vi命令,可能虚拟机中没有装,可以按一下方式进行安装:安装Vi:apt-get install vim,如果提示:Unable to locate package vim,则需要敲:apt-get update。等更新完毕以后再敲命令: apt-get install vim
vi /etc/mysql/mysql.conf.d/mysqld.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
Docker 中修改Mysql 数据库的 only_full_group_by 模式
退出docker:exit
sudo docker stop ??? ,指定容器名字,关闭 mysql
sudo docker start ??? ,指定容器名字,启动 mysql

上一篇:mysql多表联合查询 [Err] 1055 - Expression #1 of SELECT list is not in GROUP BY clause this is incompati


下一篇:技术应用丨DWS 空间释放(vacuum full) 最佳实践