当前位置: 首页 > article >正文

Mysql “this is incompatible with sql_mode=only_full_group_by” 问题解决

背景介绍:

公司项目要进行mysql升级, 从 5.7 升级到 8.0,需要进行影响调查, 找了个测试服务器,装了 mysql8.0.32进行测试,标题错误,我遇见了两次:

1. WEB 程序报标题错误
2. procedure 报标题错误


1.WEB 程序报标题错误,解决方案

WEB 程序报标题错误的时候, 就搜怎么解决, 都说修改 sql_mode 就OK

参照博客:

https://blog.csdn.net/weixin_43102784/article/details/136162801

# 确认 sql_mode
SELECT version(),@@SESSION.sql_mode,@@GLOBAL.sql_mode;

# 更新sql_mode (选中你自己使用的DB)
SET @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

SET sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

刷新 WEB 程序, 不报错了

这样改有个问题, 就是重启 mysql 后, 还是会报这个错误, 想要长期有效,需要更改配置文件

vim /ect/my.cnf

找到 sql_mode  关键字, 删掉  only_full_group_by 

如果没有 sql_mode 配置,则将下面的语句贴到 [mysqld] 的最后

sql_mode ='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'

2. Procedure 报标题错误解决

由于我导库的时候,sql_mode 还没改,用的还是 default 值

而 procedure 是创建的时候采用什么样的 sql_mode, 以后调用的时候还采用创建时候的 sql_mode, 所以,即便后来改了 sql_mode,也对 procedure 不管用

解决办法是将 procedure 删掉重新 create 一下,再执行就没问题了

官方声明:
MySQL stores the sql_mode system variable setting in effect when a routine is created or altered, and always executes the routine with this setting in force, regardless of the current server SQL mode when the routine begins executing.

MySQL :: MySQL 8.0 Reference Manual :: 15.1.17 CREATE PROCEDURE and CREATE FUNCTION Statementsicon-default.png?t=O83Ahttps://dev.mysql.com/doc/refman/8.0/en/create-procedure.html

参考文档:

MySQL :: MySQL 8.0 リファレンスマニュアル :: 5.1.11 サーバー SQL モード

mysql8.0出现this is incompatible with sql_mode=only_full_group_by解决方案_mysql 8.0 group by clause; this is incompatible w-CSDN博客

https://stackoverflow.com/questions/45560680/stored-procedure-raising-incompatible-with-sql-mode-only-full-group-by-despite


http://www.kler.cn/a/448229.html

相关文章:

  • C# cad启动自动加载启动插件、类库编译 多个dll合并为一个
  • nodejs利用子进程child_process执行命令及child.stdout输出数据
  • [bug] StarRocks borker load意向之外的bug
  • CS 144 check5: down the stack (the network interface)
  • 2.4 网络概念(分层、TCP)
  • SQL 插入数据详解
  • SpringBoot CRUD 简易模板后端
  • Kafka 磁道寻址过程详解
  • 智能座舱进阶-应用框架层-Handler分析
  • 阿里开源最强数字人工具 EchoMimicV2,本地部署(一)
  • windows的服务怎么删除
  • 【k8s集群应用】Kubernetes二进制部署实例(master02+负载均衡)+Dashboard
  • 开始探索XDP:开启Linux高性能网络编程的新篇章
  • HarmonyOS NEXT 技术实践-基于基础视觉服务的多目标识别
  • ubuntu20.04安装mysql5.7
  • java抽奖系统(八)
  • HarmonyOS:开启万物互联智能新时代
  • 【电商推荐】全文空间反事实学习:调整、分析属性和工业应用
  • 【PyCharm】
  • 【从零开始入门unity游戏开发之——C#篇24】C#面向对象继承——万物之父(object)、装箱和拆箱、sealed 密封类
  • 日拱一卒(19)——leetcode学习记录:两个子序列的最大点积
  • java开发入门学习五-流程控制
  • 新版国标GB28181设备端Android版EasyGBD支持国标GB28181-2022,支持语音对讲,支持位置上报,开源在Github
  • mysql冷知识
  • 【CSS in Depth 2 精译_089】15.2:CSS 过渡特效中的定时函数
  • 飞牛 fnos 使用docker部署Easyimage2图床 方便上传和管理图片