在操作集群上的Mysql5.7修改Hive元數(shù)據(jù)支持中文 注釋時,遇到如下錯誤
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
根據(jù)異常信息分析能發(fā)現(xiàn),這個問題主要是由于sql_mode引起,所以先查看sql_mode后修改即可,主要是去除only_full_group_by
這是數(shù)據(jù)庫的sql_mode設(shè)置的有問題。Mysql可以支持不同的SQL模式,不同的SQL模式會有不同的語法,執(zhí)行不同的數(shù)據(jù)校驗簡查。
解決方案:
方案一:只修改當前數(shù)據(jù)庫的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服務(wù),順利解決。
sudo systemctl restart mysqld