问题
通过navicat访问基于docker部署的mysql服务,
使用sql语句创建数据库发生异常:
mysql版本为:5.7.31
sql:
CREATE DATABASE superv_xxx
;
报错:
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
解决
进入运行mysql的docker容器
docker exec -it 'xxx' /bin/bash
(这里的’xxxx’是docker容器的ID)
进入mysql目录
cd /etc/mysql
(发现这个目录是空的)
添加配置文件(如果没有的话)
原来这里用的是缺省配置,也就是默认配置,
我们手动添加一个my.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'
mysql服务会用我们sql_mode覆盖缺省配置中的sql_mode。
重启docker容器
参考资料:
Flavoring:1055 - Expression #1 of ORDER BY clause
汤姆猫丶:解决Err 1055 - Expression #1 of ORDER BY
天妖姥爷:docker下修改mysql配置文件
哎码:docker下Mysql的配置文件在哪里?