• MySQL_1055错误代码与sql_mode = only_full_group_by不兼容


    MySQL_1055错误代码与sql_mode = only_full_group_by不兼容


    错误代码: 1055

    Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘xxxx’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

    图例


     

    原因

    在MySQL5.7.5后,默认开启了ONLY_FULL_GROUP_BY,所以导致了之前的一些SQL无法正常执行,其实,是我们的SQL不规范造成的,因为group by 之后,返回的一些数据是不确定的,所以才会出现这个错误。


     

    解决方案( Linux环境 )

    禁用ONLY_FULL_GROUP_BY

    1. 登录进入MySQL,linux登录的:mysql -u username -p ,然后输入密码,输入SQL;或者用图示化工具

      show variables like '%sql_mode';

    2. 编辑my.cnf文件,文件地址一般在:/etc/my.cnf或者/etc/mysql/my.cnf

      找到sql-mode的位置,去掉ONLY_FULL_GROUP_BY,然后重启MySQL;

      有的my.cnf中没有sql-mode,需要加入:

      sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

      注意要加入到[mysqld]下面,加入到其他地方,重启后也不生效,具体的如下图:

    3. 修改成功后重启MySQL服务,service mysqld restart,重启好后,再登录mysql,输入SQL:show variables like ‘%sql_mode’; 如果没有ONLY_FULL_GROUP_BY,就说明已经成功了。


     

    测试

  • 相关阅读:
    前端性能优化
    CSS实现文字在容器中对齐方式
    spring里面的context:component-scan
    Builder模式
    idea无法新建maven项目
    Java-位运算
    pg数据库数据表异常挂起
    Java-多线程与单例
    Java-数据结构之二叉树练习
    Java-JNA使用心得
  • 原文地址:https://www.cnblogs.com/mmdz/p/16257364.html
Copyright © 2020-2023  润新知