首页 > 数据库 >mysql高版本(8.0)sql_mode = only_full_group_by的解决办法

mysql高版本(8.0)sql_mode = only_full_group_by的解决办法

时间:2023-05-23 17:34:15浏览次数:80  
标签:8.0 full group NO sql ZERO mode mysql

1、原理层面

这个错误一般发生在mysql 5.7以及 5.7以上的版本中,其原因是mysql的默认配置中,sql_mode=“ONLY_FULL_GROUP_BY” 这个配置严格执行了 ‘SQL92标准’,所以很高网站维护人员在升级mysql版本时,都会修改 sql_mode 的配置,使其能兼容。

2、sql层面

从sql层面来说,输出的结果思做target list,就是 select 后面跟着的字段,还有一个地方是 group by column,就是 group 后面跟着的字段,由于开启了 ONLY_FULL_GROUP_BY 的设置,如果没有字段在 target list 以及 group by 字段中同时出现,那么 sql 就认为此条语句是不合法的,就会抛出错误。

3,查看,sql_mode查询命令
select @@GLOBAL.sql_mode;

查询如下图:

需要去掉:ONLY_FULL_GROUP_BY
4,解决
(1) 通过命令解决:
set @@GLOBAL.sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION;
注:此种方式的修改,在mysql 重启后就会失效。
(2)修改 my.ini 文件
需修改mysql配置文件,通过手动添加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

注:

1、不同的系统,mysql 的配置文件名以及路径不同

2、Mac或Linux文件 /etc/my.cnf

3、windows 在数据库安装目录下的 my.ini

标签:8.0,full,group,NO,sql,ZERO,mode,mysql
From: https://www.cnblogs.com/zhyp/p/17425884.html

相关文章

  • Windows 11 和 Rocky 9 Linux 平台 MySQL 8.0.33 简易安装教程
    目录Windows平台安装MySQLLinux平台Rocky9安装MySQLbinarypackagerpmpackageyum源sourcepackageWindows11和Rocky9Linux初体验MySQL8.0.33简易安装教程。MySQL8.0目前最新稳定版本已经更新到了MySQL8.0.33,估计下一个稳定版本(大约在今年7月份)推出。当然,......
  • P1763 friendly group
    /**@Description:Toiterateishuman,torecursedivine.*@Autor:Recursion*@Date:2022-05-1622:59:39*@LastEditTime:2022-05-1623:27:17*/#include<bits/stdc++.h>#defineLLlonglongusingnamespacestd;constintmaxn=1e6+10;c......
  • Ubuntu 18.04 (Bionic) 简单快速的安装mongodb
    按步骤走,不带脑子式安装(注意4.0版本mongodb官方已经不再支持,以下代码中可以修改mongodb版本号安装,目前最新版为6.0,如果懒得改直接用也可以,文章后边第三章第一条代码会直接升级为最新版本mongodb):1.导入包管理系统使用的公钥wget-qO-https://www.mongodb.org/static/pgp/serv......
  • angular中使用full-calendar
    版本信息"@fullcalendar/angular":"^5.11.0","@fullcalendar/common":"^5.11.0","@fullcalendar/core":"^5.11.0","@fullcalendar/daygrid":"^5.11.0","@ful......
  • #yum安装mysql8.0.32修改二进制日志位置报错mysqld: File '/data/mysql/logbin/mysql-
    #yum安装mysql8.0.32修改二进制日志位置报错mysqld:File'/data/mysql/logbin/mysql-bin.index'notfound(OSerrno13-Permissiondenied)[root@master-DNSmysql]#cat/var/log/mysql/mysqld.log2023-05-22T09:08:36.149861Z0[Warning][MY-010918][Server]'d......
  • Seata 0.8.0 正式发布
    java4all原创,欢迎关注摘要:Seata0.8.0正式发布。Seata0.8.0正式发布。Seata是阿里巴巴开源的分布式事务中间件,以高效并且对业务0侵入的方式,解决微服务场景下面临的分布式事务问题。0.8.0版本主要feature:1.支持oracle数据库的AT模式;2.支持oracle数据库的批量操作;3.支持u......
  • Ubuntu 18.04 BST -- Docker 命令
    一、查看DockerIP进入Docker  l@l-VirtualBox:~/sdk-a1000-docker/BST-HS-Linux-SDK-<Version>/sdk/SDK-Docker-fad-<Version>$sudo./run_docker.sha1000b-sdk-fad-<Version>...sdkdockerimg:a1000b-sdk-fad-2.3.0.4.tarstartloadsdkversionima......
  • DataFrameGroupBy.agg详解
    DataFrameGroupBy.agg(arg, *args, **kwargs)[source]Aggregateusingcallable,string,dict,orlistofstring/callablesParameters:funcFunctiontouseforaggregatingthedata.Ifafunction,musteitherworkwhenpassedaDataFrameorwhenpassedto......
  • Jmeter函数助手13-threadGroupName
    threadGroupName函数获取当前线程组的名称。该函数没有参数,直接引用即可。1、返回当前线程组的名称......
  • 关于STM32Cube_FW_F1_V1.8.0内的example顶层程序设计逻辑 与 RTC_Calendar增补
     Examples内程序结构STM32Cube_FW_F1_V1.8.0\Projects\STM3210E_EVAL\Examples内程序结构分析如下:使用外设XXX向工程添加 stm32f10x_XXX.c修改stm32f10x_conf.h 在stm32f1xx_hal_msp.c中写 外设XXX写初始化程序在stm32f1xx_it.c中写中断服务程序在main.c中写配置程......