mysql异常[Err] 1055 - GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

在操作集群上的Mysql5.7修改Hive元数据支持中文 注释时,遇到如下错误

Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

根据异常信息分析能发现,这个问题主要是由于sql_mode引起,所以先查看sql_mode后修改即可,主要是去除only_full_group_by

这是数据库的sql_mode设置的有问题。Mysql可以支持不同的SQL模式,不同的SQL模式会有不同的语法,执行不同的数据校验简查。


解决方案:

方案一:只修改当前数据库的SQL_MODE

-- 查看SQL_MODE

SELECT @@sql_mode;

-- 修改SQL_MODE

SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

解决方案二:完美解决方案。

  需修改mysql配置文件,通过手动添加sql_mode的方式强制指定不需要ONLY_FULL_GROUP_BY属性,

  my.cnf位于etc文件夹下,vim下光标移到最后,添加如下:

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

      重启mysql服务,顺利解决。

sudo systemctl restart mysqld

你可能感兴趣的:(mysql异常[Err] 1055 - GROUP BY clause; this is incompatible with sql_mode=only_full_group_by)