MYSQL5.7以上版本 插入时出现 Err1055

来源:互联网 发布:知父莫若子by谦心诀 编辑:程序博客网 时间:2024/05/01 08:31

[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以上的新特性。MYSQL里面执行这句话就好了

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


其实上面的那个方法治标不治本啊,重启又不行了,,还是要从配置文件入手啊。。

  • 改动my.ini文件(WIndows下) my.conf(LInux下)
  • 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 中执行
  • mysql> select @@sql_mode ;
    +——————————————————————————————————————————————-+
    | @@sql_mode |
    +——————————————————————————————————————————————-+
    | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
    +——————————————————————————————————————————————-+
    1 row in set (0.00 sec)
    返回的值中 把”ONLY_FULL_GROUP_BY,”删掉,给sql_mode赋值
  • 重启Mysql


0 0