禁用ONLY_FULL_GROUP_BY模式

news2025/3/28 18:50:37

这是由于MySQL启用了ONLY_FULL_GROUP_BY模式导致的。以下是禁用该模式的三种方法,结合你的需求选择最合适的方案:

一、临时禁用(重启后失效)

1. 当前会话禁用

直接在SQL客户端执行以下命令,仅对当前数据库连接有效:

SET SESSION sql_mode = (SELECT REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', ''));
2. 全局禁用

修改全局设置,对所有新连接生效(但重启MySQL服务后失效):

SET GLOBAL sql_mode = (SELECT REPLACE(@@GLOBAL.sql_mode, 'ONLY_FULL_GROUP_BY', ''));

二、永久禁用(需修改配置文件)

步骤
  1. 找到MySQL配置文件

    • Windowsmy.ini(通常位于MySQL安装目录或C:\ProgramData\MySQL\MySQL Server 8.0)。
    • Linux/etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf
  2. 修改配置: 在 [mysqld] 部分添加或修改 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_ENGINE_SUBSTITUTION

  3. 重启MySQL服务

    • Windows:通过服务管理器重启MySQL服务。
    • Linux:执行 sudo systemctl restart mysql
  4. 验证

    SELECT @@GLOBAL.sql_mode;

    确认输出中不再包含 ONLY_FULL_GROUP_BY

三、查询优化(推荐)

如果不想修改数据库配置,可以通过以下方式调整SQL语句,使其符合ONLY_FULL_GROUP_BY规则:

1. 确保所有非聚合列在GROUP BY

修改你的SQL,将SELECT列表中的非聚合列(如network_type)添加到GROUP BY子句:

GROUP BY t.id, cdn.cdn_device_network.network_type

2. 使用聚合函数包裹非聚合列

对不需要分组的列使用ANY_VALUE()函数:

SELECT ANY_VALUE(network_type) AS network_type, ... FROM ... GROUP BY t.id

四、注意事项

  1. 数据一致性风险:禁用ONLY_FULL_GROUP_BY可能导致查询结果不确定,建议生产环境谨慎操作。
  2. 配置文件优先级:确保修改的配置文件是MySQL实际加载的(可能存在多个配置文件,优先级以最后加载的为准) 。
     
  3. MySQL版本差异:MySQL 8.0默认启用此模式,需通过配置文件永久修改 。

总结

  • 快速修复:临时禁用(方法一)适合紧急调试。
  • 长期方案:修改配置文件(方法二)确保重启后生效。
  • 最佳实践:优化SQL查询(方法三),避免依赖数据库模式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2321774.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java8循环解压zip文件---实现Excel文件数据追加

java8循环追加Excel数据 实际遇到问题:定期获取zip文件,zip文件内有几个固定模板的Excel文件,有的Excel文件可能还包含多个sheet。 有段时间一次性获取到好几个zip包,需要将这些包都解压,并且按照不同的文件名、sheet进…

基于SpringBoot的电影售票系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

SQL Server 2022 安装问题

一、安装与配置问题 1. SQL Server 2022 安装失败怎么办? 常见原因: 硬件或操作系统不满足最低要求(如内存、磁盘空间不足)。未关闭防火墙或杀毒软件。之前版本的 SQL Server 残留文件未清理。 解决方案: 确保硬件配…

MySQL 8.0.41安装教程(附安装包)mysql8.0.41图文详细安装教程

文章目录 前言一、MySQL 8.0.41下载安装包二、MySQL 8.0.41安装教程1.启动安装程序2.选择安装模式3.选定安装组件4.确认安装设置5.执行安装操作6.安装进行中7.设置数据库密码8.继续点击下一步9.执行配置操作10.完成配置11. 再次点击下一步12.结束安装向导 三、MySQL 8.0.41配置…

深入解析 C++20 中的 std::bind_front:高效函数绑定与参数前置

文章目录 1. 什么是 std::bind_front?2. 使用 std::bind_front2.1 基本用法2.2 绑定多个参数 3. 优势与特点3.1 简化代码3.2 支持可调用对象3.3 支持完美转发 4. 实际应用场景4.1 事件处理4.2 算法通用化4.3 成员函数调用 5. 总结 在现代 C 编程中,函数绑…

python裁剪nc文件数据

问题描述: 若干个nc文件储存全球的1850-2014年月尺度的mrro数据(或其他数据),从1850-1到2014-12一共1980个月,要提取出最后35年1980.1~2014.12年也就是420个月的数据。 代码实现 def aaa(input_file,output_file,bianliang,start_index,en…

CSS网格布局Grid

目录 一、Grid 网格布局 1.Grid 布局基础 2.网格容器属性 3.网格项目属性 4.高级功能 5.典型应用场景 6.最佳实践 二、Flex和Grid对比 示例: 一、Grid 网格布局 CSS Grid 是一种强大的二维布局系统,能够以行和列的方式精确控制网页布局。它比传…

医院挂号预约小程序|基于微信小程序的医院挂号预约系统设计与实现(源码+数据库+文档)

医院挂号预约小程序 目录 基于微信小程序的医院挂号预约系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、小程序用户端 2、系统服务端 (1) 用户管理 (2)医院管理 (3)医生管理 &#xf…

蓝桥杯第十届 特别的数

题目描述 小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。 请问,在 1 到 n 中,所有这样的数的…

Qt开发:QInputDialog的使用

文章目录 一、QInputDialog的介绍二、 QInputDialog的基本用法三、使用 QInputDialog的实例四、QInputDialog的信号与槽 一、QInputDialog的介绍 QInputDialog 是 Qt 提供的一个对话框类,用于获取用户输入的文本、整数或浮点数。它提供了简单易用的静态方法和可定制…

redis--JavaSpring客户端

目录 一、引言 二、配置 三、相关操作 四、总结 一、引言 本篇文章会将redis与spring项目进行结合,看看再spring项目中,redis是如何使用的 二、配置 三、相关操作 四、总结 在spring项目中的使用和在基础项目上的使用有差异,但是差异并不大…

2、二分和贪心

一、二分 这里有个小技巧,你会发现,只要是求最大最小最多等等的贪心过程,我们就有3种方法:①二分②贪心算法③动态规划 我们先讲二分和贪心,动态规划比较麻烦,留到后期。 1、了解 2、模版 class Solution …

QuecPython 网络协议之TCP/UDP协议最祥解析

概述 IP 地址与域名 IP 地址是网络中的主机地址,用于两台网络主机能够互相找到彼此,这也是网络通信能够成功进行的基础。IP 地址一般以点分十进制的字符串来表示,如192.168.1.1。 ​ 我们日常访问的网站,其所在的服务器主机都有…

ISIS-2 邻居建立关系

上一章我们介绍了ISIS的基础概念以及报文内容和作用在什么样的场景下面的 这一章我们来介绍IS-IS的邻居建立关系 一、概念 IS-IS中路由器的角色可分为L1、L2、L1/2这三种类型其中的L1/L2有点类似与我们OSPF中的ABR IS-IS中的邻居关系分为L1与L2邻居关系,其中所有建立L2邻居关…

Nature Machine Intelligence 嵌入式大语言模型使机器人能够在不可预测的环境中完成复杂的任务

近期英国爱丁堡大学发表Nature Machine Intelligence研究工作,提出了一种名为ELLMER(具身大型语言模型支持机器人)的创新框架,通过整合大型语言模型(如GPT-4)、检索增强生成(RAG)、视…

Springboot整合elasticsearch详解 封装模版 仓库方法 如何在linux里安装elasticsearch

目录 版本 下载地址 ElasticSearch频繁报503错误 开放 9300 和 9200 两个端口 测试联通性 改动包装类 elasticsearchTemplate getAllRespRepository 封装elasticsearchService 业务逻辑 版本 首先要对应版本 这是我在官网找到的版本信息 一定要 springboot 和 es 相…

【矩阵快速幂】P6601 「EZEC-2」机器|普及+

本文涉及知识点 【矩阵快速幂】封装类及测试用例及样例 P6601 「EZEC-2」机器 题目背景 tlx 喜欢科幻小说。 小宇宙中只剩下漂流瓶和生态球。漂流瓶隐没于黑暗里,在一千米见方的宇宙中,只有生态球里的小太阳发出一点光芒。在这个小小的生命世界中,几只清澈的水球在零重力环…

FPGA助力智能机器人应用

今年开年AI机器人引爆科技圈,都说FPGA是“万能芯”,在AI方向上已经挣扎了几年,仍旧不能“破圈”,那么在机器人方向呢? 个人观点我是不太看好目前FPGA能在机器人方面能“破圈”,但是一切皆有可能&#xff0c…

如何在jupyter notebook中使用django框架

(最好以管理员身份进入,否则在安装某些内容时会报错) 一.创建一个名为new_env虚拟环境 输入以下指令创建名为new_env的虚拟环境: conda create -n new_env python3.8 回车,出现以下内容,输入y确认安装,等待安装完毕…