本文小编为大家详细介绍“MySQL运行报错:“Expression#1ofSELECTlistisnotinGROUPBYclauseandcontainsnonaggre”如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL运行报错:“Expression#1ofSELECTlistisnotinGROUPBYclauseandcontainsnonaggre”如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。最近在部署项目之后,运行出现报错:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘grades.order_id’
which is not functionally dependent on columns in GROUP BY clause;
this is incompatible with sql_mode=only_full_group_by字面意思理解:SELECT 列表的表达式 #1 不在 GROUP BY 子句中,并且包含非聚合列“grades.order_id” 它在功能上不依赖于
GROUP BY 子句中的列; 这与 sql_mode=only_full_group_by 不兼容使用GROUP BY 语句违背了sql_mode=only_full_group_by。因为mysql版本5.7之后默认的模式是ONLY_FULL_GROUP_BY。查看官方文档,发现从 MySQL 5.7.5 开始,默认 SQL 模式包括 ONLY_FULL_GROUP_BY。 (在 5.7.5 之前,MySQL 不检测函数依赖,并且默认不启用 ONLY_FULL_GROUP_BY。)这可能会导致一些免费云主机域名sql语句失效。执行命令vim /etc/mysql/conf.d/mysql.cnf
修改配置文件如果my.cnf中有sql_mode配置,则将ONLY_FULL_GROUP_BY去掉。如果没有,则将下面内容放到相应位置保存之后,执行命令service mysql restart
重启mysql即可。2022.06.10更新最近用docker安装mysql又出现这个问题,修改配置文件之后,重启mysql发现连不上mysql于是查看错误信息 docker logs -f --tail 10 mysql
,出现报错:Error while setting value
‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’
to ‘sql_mode’原来mysql 8.0 以上取消了NO_AUTO_CREATE_USER这个关键字,在my.cnf中的sql_mode中删掉这个关键字即可。读到这里,这篇“MySQL运行报错:“Expression#1ofSELECTlistisnotinGROUPBYclauseandcontainsnonaggre”如何解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注百云主机行业资讯频道。
这篇文章主要讲解了“Springbean加载控制如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Springbean加载控制如何实现”吧!因为功能不同,要避免Spring错误的加载到SpringMVC的b…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。