惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threatpost
aimingoo的专栏
aimingoo的专栏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
J
Java Code Geeks
博客园_首页
Google Online Security Blog
Google Online Security Blog
Hugging Face - Blog
Hugging Face - Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
Intezer
P
Palo Alto Networks Blog
V
Vulnerabilities – Threatpost
雷峰网
雷峰网
O
OpenAI News
SecWiki News
SecWiki News
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
N
News | PayPal Newsroom
Project Zero
Project Zero
Forbes - Security
Forbes - Security
IT之家
IT之家
A
Arctic Wolf
WordPress大学
WordPress大学
Jina AI
Jina AI
T
Tor Project blog
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
Google DeepMind News
Google DeepMind News
Attack and Defense Labs
Attack and Defense Labs
博客园 - 聂微东
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Privacy International News Feed
Cloudbric
Cloudbric
G
GRAHAM CLULEY
博客园 - 叶小钗
H
Hacker News: Front Page
腾讯CDC
量子位
Help Net Security
Help Net Security
人人都是产品经理
人人都是产品经理
C
Cyber Attacks, Cyber Crime and Cyber Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
爱范儿
爱范儿
L
Lohrmann on Cybersecurity
Hacker News - Newest:
Hacker News - Newest: "LLM"
Recorded Future
Recorded Future
C
CERT Recently Published Vulnerability Notes

博客园 - SHENHUANJIE

Marvis 使用进阶:联动与外部资源整合 这是一篇用 Marvis发布的文章,让大家都去用 Marvis 程序员保持高效的5个习惯 Kimi WebBridge:让 AI 真正操控你的浏览器 腾讯突然扔出王炸!马维斯一夜刷屏,打工人终于有救了? AIGC-测试库账号密码 openspec 是什么?怎么正确使用? # Hello World 的传奇起源 Please Start Here AI助手记忆系统:从金鱼到大象的进化之路 mac 快速切换 python 版本 卢曼卡片盒笔记法介绍 Introduction to the Zettelkasten Method Uni-app页面信息与元素影响解析 DevOps 入门指南:基础知识解读 「读书计划」《啊哈!算法》7日结构化学习规划 Java RestTemplate 发送 POST 请求设置请求体示例 跨平台开发方案:优缺点对比及选择指南 Java实现简单多层感知器神经网络 Google开发者账号注册步骤详解 ipify.org:免费IP查询服务详解 Google开发者利器:云平台与Firebase服务解析 Google Fonts字体库使用指南 UNI-APP + Spring Boot 实现小程序手机号登录 UNI-APP 获取用户手机号授权与服务器端处理指南 平衡工作与生活的10个实用方法 Linux安装Ollama并启用服务教程 如何在 LobeChat 中使用 Ollama Deprecation Warning: The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0.
MySQL 8.0 如何禁用 ONLY_FULL_GROUP_BY
SHENHUANJIE · 2025-01-15 · via 博客园 - SHENHUANJIE

  在 MySQL 8 中,ONLY_FULL_GROUP_BY​ 是默认启用的 SQL 模式之一。如果你希望禁用 ONLY_FULL_GROUP_BY​,可以通过以下几种方式实现:

方法 1:临时禁用(仅对当前会话有效)

  你可以通过修改当前会话的 sql_mode​ 来临时禁用 ONLY_FULL_GROUP_BY​。

步骤:

  1. 查看当前的 sql_mode​:

    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
    
  2. 移除 ONLY_FULL_GROUP_BY​:

    SET SESSION sql_mode = (SELECT REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', ''));
    
  3. 验证是否已移除:

    SELECT @@sql_mode;
    

    输出中不应再包含 ONLY_FULL_GROUP_BY​。

方法 2:全局禁用(对所有会话有效)

  如果你希望全局禁用 ONLY_FULL_GROUP_BY​,可以修改全局的 sql_mode​。

步骤:

  1. 查看当前的全局 sql_mode​:

    SELECT @@GLOBAL.sql_mode;
    
  2. 移除 ONLY_FULL_GROUP_BY​:

    SET GLOBAL sql_mode = (SELECT REPLACE(@@GLOBAL.sql_mode, 'ONLY_FULL_GROUP_BY', ''));
    
  3. 验证是否已移除:

    SELECT @@GLOBAL.sql_mode;
    

方法 3:通过配置文件永久禁用

  如果你希望永久禁用 ONLY_FULL_GROUP_BY​,可以通过修改 MySQL 配置文件来实现。

步骤:

  1. 打开 MySQL 配置文件:

    • Linux 系统:/etc/my.cnf​ 或 /etc/mysql/my.cnf
    • Windows 系统:my.ini
  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 服务:

    • Linux 系统:

      sudo systemctl restart mysql
      
    • Windows 系统:
      通过服务管理器重启 MySQL 服务。

  4. 验证是否生效:

    SELECT @@sql_mode;
    

注意事项

  1. 数据准确性:禁用 ONLY_FULL_GROUP_BY​ 后,MySQL 允许在 GROUP BY​ 查询中使用未明确分组的非聚合列。这可能导致查询结果不确定或不准确,因此需要谨慎使用。
  2. 生产环境:在生产环境中,建议保持 ONLY_FULL_GROUP_BY​ 启用,以确保查询的准确性和一致性。
  3. 兼容性:禁用 ONLY_FULL_GROUP_BY​ 后,某些在严格模式下会报错的查询可能会正常运行,但结果可能不符合预期。

总结

  • 临时禁用:使用 SET SESSION sql_mode​。
  • 全局禁用:使用 SET GLOBAL sql_mode​。
  • 永久禁用:修改 MySQL 配置文件并重启服务。

  根据你的需求选择合适的方法,但请务必注意禁用 ONLY_FULL_GROUP_BY​ 可能带来的数据准确性问题。