我的问题
在 mysql 中使用聚合函数 sum 等之后在脚本语句的最后的 group by 中只写了聚合字段之外的部分字段,执行脚本会报错。网上搜索后提示要关闭 ONLY_FULL_GROUP_BY。我的 mysql 安装的 centos 7.4,腾讯云服务器上,mysql 版本信息如下
我的尝试
在 /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 已经无法配置这个参数了?
SELECT @@sql_mode;
看结果中是否还有ONLY_FULL_GROUP_BY项,如果有说明配置修改未生效