mysql報錯處理:incompatible with sql_mode=only_full_group_by


問題:

服務報錯:incompatible with sql_mode=only_full_group_by,如下圖所示:

 

 

分析:

NLY_FULL_GROUP_BY是MySQL提供的一個sql_mode,通過這個sql_mode來提供SQL語句GROUP BY合法性的檢查。各種精確查詢會報錯

 

解決方案:

1. 執行以下sql,關閉ONLY_FULL_GROUP_BY(這種方式在重啟mysql后會失效)

set @@GLOBAL.sql_mode='';

set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

2. 修改/etc/my.cnf(重啟后仍然生效)

在mysqld下添加: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服務,OK!

3. 查看sql_model參數:

SELECT @@GLOBAL.sql_mode;
SELECT @@SESSION.sql_mode;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM