mysql8.0+版本在使用group by 出现的问题
起因:
由于想使用MySQL8中的函数,手动将项目中的数据库从5.7升级到了8.0.20 社区版本,但是升级完之后部分查询报错了,错误信息如下
which is not functionally dependent on columns in GROUP BY clause; this is incompatible withsql_mode=only_full_group_by
去搜了一下,推荐的几篇都说是需要修改配置文件,按照文章提示的操作了,结果重启就报错,仔细比对了才发现文章里的配置项加了单引号,而且还有多余的空格,简直是害人。这里记录一下,希望能帮到刷到这篇文章的你。
解决:
-
在客户端或者服务器连上MySQL后输入
SELECT @@sql_mode;
,得到结果集如下:ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
-
这里我们去掉
ONLY_FULL_GROUP_BY
,然后去修改配置文件my.cnf
,在[mysqld]
下添加一行sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
-
重启MySQL服务器,这里我是直接通过命令方式,或者添加了service可以通过service 重启
#关闭命令 /home/mysql8/bin/mysqladmin -uroot -p shutdown #启动命令 /data/software/mysql8/bin/mysqld_safe --defaults-file=/data/software/mysql8/my.cnf &
作者:河岸飞流
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2019-05-23 Java-驼峰命名与下划线命名互转
2019-05-23 mysql毫秒数引发的问题