Mysql

AWS Aurora MySQL 集群數據庫中的間歇性 only_full_group_by 錯誤

  • March 23, 2022

我們最近從 MySQL 5.6 升級到 5.7,並且遇到了與 only_full_group_by sql 模式相關的錯誤。我們只是間歇性地看到問題。我們的數據庫位於具有單個實例的 AWS Aurora MySQL 集群中。我們最初在集群參數組設置中包含 only_full_group_by sql 模式,但開始遇到這些錯誤並決定需要更新的查詢數量超出了本項目的範圍。

尋找一些關於為什麼錯誤是間歇性的以及完全解決錯誤的最佳行動方案的一些見解。

如果only_full_group_by啟用

a 的所有 ColumnsSELECT必須在GROUP BYor 使用聚合函式

所以簡單地 a 在GROUP BY並且 b 使用聚合函式

SELECT
a, MIN(b)
FROM
mytable
GROUP BY a

因此,您現在必須檢查所有查詢GROUP BY並“更正”它們。

另見手冊

嘗試所有查詢,如果他們給出正確答案,那將花費一些時間。

原來這個問題的原因可能與我們用於實體框架的 mysql.data.entity 的版本有關。它出現在我們使用的版本(6.9.12)中,包將呼叫“SET SESSION sql_mode=‘ANSI’;” 在執行插入之前。我們通過 performance_schema 表查看在我們的數據庫上執行的查詢發現了這個問題,並通過諸如https://bugs.mysql.com/bug.php?id=79678之類的報告以及在此處查看原始碼確認:https:/ /www.fuget.org/packages/MySql.Data.Entity/6.9.12/lib/net45/MySql.Data.Entity.EF6.dll/MySql.Data.Entity/InsertStatement?code=true

引用自:https://dba.stackexchange.com/questions/287542