侧边栏壁纸
  • 累计撰写 49 篇文章
  • 累计创建 29 个标签
  • 累计收到 6 条评论

目 录CONTENT

文章目录

【MySQL 5.7】this is incompatible with sql_mode=only_full_group_by

JHL&WWZ
2022-06-17 / 0 评论 / 0 点赞 / 619 阅读 / 477 字 / 正在检测是否收录...

有时候,遇到数据库重复数据,需要将数据进行分组,并取出其中一条来展示,这时就需要用到group by语句。
但是,如果mysql版本过高,当执行group by时,select的字段不属于group by的字段的话,sql语句就会报错。

  • 编辑my.cnf文件
  • 文件地址一般在:/etc/my.cnf,/etc/mysql/my.cnf
  • 找到sql-mode的位置,去掉ONLY_FULL_GROUP_BY
  • 然后重启MySQL;
  • 有的my.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 

my.cnf文件完整配置如下

[mysqld]
# 配置文件中增加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 

# 以下为自用配置
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
#表名字大小写是否敏感,1表示不敏感
lower_case_table_names = 1
#最大连接数
max_connections = 500

#最大错误连接数
max_connect_errors = 1000

############################主从复制设置#####################################
server-id=10
#开启mysql binlog功能
log-bin=mysql-bin

#binlog记录内容的方式,记录被操作的每一行
binlog_format = ROW

#对于binlog_format = ROW模式时,减少记录日志的内容,只记录受影响的列
binlog_row_image = minimal

#master status and connection information输出到表mysql.slave_master_info中
master_info_repository = TABLE

#the slave‘s position in the relay logs输出到表mysql.slave_relay_log_info中
relay_log_info_repository = TABLE

#作为从库时生效,想进行级联���制,则需要此参数
log_slave_updates

#作为从库时生效,中继日志relay-log可以自我修复
relay_log_recovery = 1

#作为从库时生效,主从复制时忽略的错误
slave_skip_errors = ddl_exist_errors

[mysql]
default-character-set = utf8mb4
[mysqld_safe]
default-character-set = utf8mb4
[client]
default-character-set = utf8mb4
0

评论区