mysql 的 sql_mode 问题

我的问题

在 mysql 中使用聚合函数 sum 等之后在脚本语句的最后的 group by 中只写了聚合字段之外的部分字段,执行脚本会报错。网上搜索后提示要关闭 ONLY_FULL_GROUP_BY。我的 mysql 安装的 centos 7.4,腾讯云服务器上,mysql 版本信息如下
image.png

我的尝试

在 /etc/my.cnf 中修改该模式后,配置文件的全部内容如下

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

character_set_server=utf8
init_connect='SET NAMES utf8'
innodb_buffer_pool_size=2G
# sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

default-storage-engine=INNODB
max_connections=2000

重启 centos 后错误依旧,我要如何解决这个错误提示?还是我用的这个版本的 mysql 已经无法配置这个参数了?

阅读 1.1k
1 个回答
  1. 确保修改的配置文件就是实际生效的配置文件
  2. SELECT @@sql_mode;看结果中是否还有ONLY_FULL_GROUP_BY项,如果有说明配置修改未生效
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题