美文网首页
Mysql相关

Mysql相关

作者: 抄无止境 | 来源:发表于2022-01-19 17:41 被阅读0次
1. mysql出现which is not functionally dependent on columns in GROUP BY clause报错

  出现原因
  原理层面
  这个错误一般发生在mysql 5.7以及 5.7以上的版本中,其原因是mysql的默认配置中,sql_mode=“ONLY_FULL_GROUP_BY” 这个配置严格执行了 ‘SQL92标准’,所以很高网站维护人员在升级mysql版本时,都会修改 sql_mode 的配置,使其能兼容。
  sql层面
  从sql层面来说,输出的结果思做target list,就是 select 后面跟着的字段,还有一个地方是 group by column,就是 group 后面跟着的字段,由于开启了 ONLY_FULL_GROUP_BY 的设置,如果没有字段在 target list 以及 group by 字段中同时出现,那么 sql 就认为此条语句是不合法的,就会抛出错误。

  查看是否为此问题

select @@sql_mode;
image.png

  其中ONLY_FULL_GROUP_BY就是造成这个错误的罪魁祸首了,

  解决办法
  找到MySQL的配置文件,在linux系统上/etc/mysql/mysql.conf.d/mysqld.cnf文件,查询sql_mode字段,我并没有在配置文件中找到这个关键字,所以我手动添加进去:

sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

  需要注意的一点是一定要添加在[mysqld]配置内,这样添加完后重启mysql才会生效,退出数据库:exit,重启命令:

service mysql restart;

  刷新页面报错信息消失成功解决,再次连接上数据库查看sql_mode配置

select @@sql_mode;

  到此已经成功解决了这个问题。

mysql高版本(8.0)sql_mode = only_full_group_by的解决办法
mysql出现which is not functionally dependent on columns in GROUP BY clause报错

相关文章

  • mysql学习

    选择mysql理由 mysql架构 mysql查询执行过程概述 相关概念 相关基础概念 数据类型 ​ mysql ...

  • MySQL-DCL语句-用户管理与授权-备忘笔记

    DCL-MySQL数据库管理相关 用户管理 相关库: mysql相关表:user 添加用户#通过MySQL自带的D...

  • 数据库

    mysql服务相关 sudo service mysql start sudo service mysql sto...

  • 数据库MySQL教程详解

    这套教程详细讲解了MySQL的相关知识,包括MySQL概述,MySQL应用环境,MySQL系统特性,MySQL初学...

  • MySQL相关

    一、数据库备份 数据库备份有好几种方法,这里介绍我用过的几种方法: 1. mysqldump导出表结构和表数据 m...

  • MySQL相关

    收集一些window下MySQL相关的资料。 1.可视化工具无法连接 MySQL 8.0 的问题 MySQL 8....

  • Mysql 相关

    开启mysql服务 开启远程服务 用户命令

  • mysql 相关

    select 时间转换 select from_unixtime(unix_timestamp(order_tim...

  • MySQL相关

    1、group by 根据某个字段进行分组,分组后使用having语句做筛选-- 查询名下有多个有效合同的学生列...

  • mysql相关

    怎样设置才能允许外网访问MySQLhttp://www.jb51.net/article/53847.htm

网友评论

      本文标题:Mysql相关

      本文链接:https://www.haomeiwen.com/subject/mjnrhrtx.html