
數據庫版本是5.7.19,在寫語句的時候,只要涉及ORDER BY,就會報錯,
ERROR 1055 (42000): Expression #7 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'postscan.verifyDelayLog.auditor' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
這個時候,百度發現,是因為這個版本的mysql 數據庫默認開啟了 sql_mode 字段的only_full_group_by 屬性。這個屬性是在你寫語句時,當你 ORDER BY 的字段不在select 的字段當中,都會報錯。
sql_mode 屬性是在mysql數據庫,event表中,
點進去,可以看到默認屬性是
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
解決這個問題,就需要修改這個字段的屬性。
方法一
在navicat 里面直接針對event表進行修改
set GLOBAL sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION ';
這樣就能去掉only_full_group_by 字段。但弊端是這個方法是針對session的,也就是說每次連接mysql 前,都需要set一次。
方法二
修改配置mysql的文件
mac在安裝這個版本的mysql的時候,我沒有發現mysql 的配置文件。不管是
/etc 下還是 mysql 的support-files 下都沒有

這個時候,可以自己在etc目錄下創建一個
關閉mysql
sudo vim /etc/my.cnf
然后往文件里寫這個配置就ok。
