MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
作者:.猫的树 发布时间:2024-01-15 17:25:21
项目场景:
最近在部署项目之后,运行出现报错:
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去掉。
如果没有,则将下面内容放到相应位置
[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
保存之后,执行命令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中删掉这个关键字即可。
来源:https://blog.csdn.net/qq_34383510/article/details/124764673


猜你喜欢
- 新项目,准备引用bootstrap-table这个控件来展示页面上的表格,无奈这款控件的分页工具栏没有跳转到xx页的功能,为了适应公司美工(
- 本文为大家分享了pygame游戏之旅的第7篇,供大家参考,具体内容如下对car和障碍的宽高进行比较然后打印即可:if y < thin
- 测试异常情况-- 1. 查询张三余额select * from account where name = '张三';-- 2
- 前言在深度学习中,有时候我们需要对某些节点的梯度进行一些定制,特别是该节点操作不可导(比如阶梯除法如 ),如果实在需要对这个节点进行操作,
- Python 中 ‘unicodeescape' codec can't decode bytes in position
- 删除vue下的node_modules文件夹全局安装rimrafcnpm i -g rimraf进入项目文件夹目录(该目录下包含node_m
- 开始刷leetcode算法题 今天做的是“买卖股票的最佳时机”题目要求 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计
- 1. dataloader() 初始化函数def __init__(self, dataset, batch_size=1, shuffle
- 一,引言开发环境:Pycharm操作系统:Windows 10Pyhon版本:3.9.9需要自行安装Pygame 3(必须)和Python(
- 注意:自定义函数要放在项目应用目录/common/common.php中。 这里是关键。 模板变量的函数调用格式:{$varname|fun
- 在开始后面的内容之前,先来解释一下urllib2中的两个个方法:info / geturl urlopen返回的应答对象respo
- 在上一篇《服务器XMLHTTP(Server XMLHTTP in ASP)基础》中我介绍了一下ServerX
- 前言在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在
- SqlServer 在事务中获得自增ID实例代码在sqlserver 中插入数据时,如何返回自增的主键ID,方式有很多,这里提
- 编写XHTML代码的规则要比编写HTML要严格得多,类似下面的代码在HTML中是有效的,但在XHTML中则是无效的。 [javascript
- 优化是一项复杂的任务,因为它最终需要对整个系统的理解.当用你的系统/应用的小知识做一些局部优化是可能的时候,你越想让你的系统更优化,你必须知
- 错误号 错误信息5 &n
- GO语言结构体方法跟结构体指针方法的区别首先,我定了三个接口、一个结构和三个方法:type DeptModeA interface {Nam
- 本文实例讲述了php实现转换html格式为文本格式的方法。分享给大家供大家参考,具体如下:有时候需要转换html格式的字符串为文本,但又需要
- 0. 简介上篇博客介绍了goroutine的创建、执行和退出的过程,并且提及了在协程切换时涉及的调度循环,本篇博客我们就来探究一下其他情形引