Mysql5.7 建表报 [Err] 1055 问题

最近,在win10系统上,使用docker下载了 mysql5.7镜像,然后建表时,发生奇怪的问题,表正常创建,但底部会出现一行错误信息,如下:

【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

查了下,使用如下命令即可解决:

select version(), @@sql_mode;

SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

// 临时方案,重启后会失效

select @@global.sql_mode;
set global sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

 

 

如果需要永久 生效,看下面方法。

本人使用docker安装的 mysql,先进入容器内部(如果是直接安装在宿主机上,请自行根据安装的路径,找到my.inf 文件并修改)

docker exec -it xxxx /bin/bash

查看mysql的配置文件,应该在这里 cat /etc/my.inf

如果没有VI编辑器,安装一下即可: yum install vi

使用VI 修改 my.inf 文件,把下面的配置放在  [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'

保存并退出

:wq

最后,重启mysql容器

docker restart xxxx

 

posted @ 2019-09-06 21:21  JimmyShan  阅读(1651)  评论(0)    收藏  举报