关于mysql8 使用group by提示 this is incompatible with sql_mode=only_full_grouop_by异常处理方法
-
方法1、改造sql,使用group by聚合的sql,需要将select 结果中非聚合函数的字段全部列入 group by 后
-
方法2、修改mysql配置文件my.cnf, my.cnf文件linux服务器一般会在/etc目录下,
编辑my.cnf, 在[mysqld] 后面增加
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
然后重启mysql数据库即可,
完整的my.cnf文件如下
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\plug-in\mysql-8.0.26
# 设置mysql数据库的数据的存放目录
datadir=D:\plug-in\mysql-8.0.26\\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 加密格式
default_authentication_plugin=mysql_native_password
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8