随枫--博客

或许是不知梦的缘故,流离之人追逐幻影!

MYSQL5.7版本sql_mode=only_full_group_by问题

        背景:最近闲来无事,把腾讯云虚拟主机的环境从wamp切换到lnmp,然后花费一些功夫将个人博客项目上传项目,然后访问域名,其它页面好好的,唯独归档页面跪了。

        报错如下:[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

        思考:怎么会跪了呢?本地好好的呢?wf?看到上面有group_by,突然想起自己在这个页面用了group by,难道group by有毒?但是本地没问题啊?难道是版本问题?然后就开始了百度之路,随手一搜索,然后出现了各位前辈的解决办法。

        原因:MYSQl5.7默认sql_mode设置问题,默认情况下有ONLY_FULL_GROUP_BY,然后解决思路就是把该配置去掉就好了。

        解决办法:

        1.执行以下sql语句select @@global.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

        2.修改mysql配置文件

         博主是centos7.2,默认mysql配置文件为/etc/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

        3.重启mysql,然后问题解决