当前位置:网站首页>columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by mysql8.0解决办法
columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by mysql8.0解决办法
2022-07-26 04:37:00 【祖安大龙】
问题如下:
ERROR 1055 (42000): Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘jol.solution.nick’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
原因:
mysql5.7以上默认开启了only_full_group_by选项。我的版本是mysql8.0以上的
Windows解决办法:
先查询查看sql_mode中的内容
select @@GLOBAL.sql_mode;
+-----------------------------------------------------------------------------------------------------------------------+
| @@GLOBAL.sql_mode |
+-----------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
+-----------------------------------------------------------------------------------------------------------------------+
解决办法有两种,第一种是临时解决,不治本,数据库重启还会重新出现此问题,第二种是修改my.ini配置文件,治本,也方便
办法1:
将查询到的sql_mode中ONLY_FULL_GROUP_BY删去即可,重启就会失效
set @@GLOBAL.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
办法2:
先找到自己mysql安装路径
select @@basedir;
+-----------+
| @@basedir |
+-----------+
| E:\mysql\ |
+-----------+
然后进入文件夹找到自己的my.ini配置文件,修改[mysqld]中的内容,添加下面的内容就可以

一定要加在[mysqld]里面,就是下面这行代码,就是将查询到的sql_mode中ONLY_FULL_GROUP_BY删去
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
然后退出数据库,在服务里面重启MySQL就可以
Ubuntu系统/Linux系统解决办法
我的数据库配置文件存在 /etc/mysql/mysql.conf.d/mysqld.cnf 里,所以直接打开这个文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf
打开文件后键入
i #插入命令
会进入这个配置文件
可能会出现这个情况鼠标滚轮下滑没用,使用键盘按键下拉就行
跟windows一样,添加sql_mode,也是删除ONLY_FULL_GROUP_BY后的那一串东西,加进入后键入键盘左上角的Esc,就会退出插入模式,然后再键入 :wq 后回车就可以保存文件,然后再重启MySQL就可以
重启命令:
sudo service mysql restart
然后进入MySQL输入下面的代码查看,即可
select @@GLOBAL.sql_mode;

边栏推荐
- Js手写函数之节流防抖函数
- 【学习笔记】AGC041
- An SQL server queries the latest records as of a certain date
- MySQL usage
- 1、 Basic introduction
- 10、 Interceptor
- How does win11 set the theme color of the status bar? Win11 method of setting theme color of status bar
- RTSP/Onvif协议视频平台EasyNVR服务一键升级功能的使用教程
- 青少年创客教育的创意设计原理
- QT compilation error sorting and remote module Download
猜你喜欢
随机推荐
数组排序2
10、 Interceptor
Face database collection summary
Kubernetes advanced training camp scheduler
An SQL server queries the latest records as of a certain date
UE4 靠近物体时显示文字,远离时文字消失
How does win11 22h2 skip networking and Microsoft account login?
Postman imports curl, exports curl, and exports corresponding language codes
2、 Internationally renowned project HelloWorld
[learning notes] agc041
建设面向青少年的创客教育实验室
2022 a.static query on tree (tree section)
计算离散点的曲率(matlab)
Optimization analysis and efficiency execution of MySQL
SwiftUI一日速成
2022 Hangdian multi school DOS card (line segment tree)
使用百度飞桨EasyDL完成垃圾分类
嵌入式实操----基于RT1170 FreeRTOS实现CPU使用率统计(二十四)
Keil V5 installation and use
A series of problems about the number of DP paths








