Mysql

MySQL 中 log_bin_trust_function_creators 的使用

  • April 1, 2021

有什麼用log_bin_trust_function_creators?另外,參數的值是動態的嗎?如果我重新啟動我的 MySQL 服務,它會改變嗎?

這個變數控制二進制日誌是否應該信任儲存函式的創建者不創建會導致不安全事件的儲存函式。例如。具有 UUID 功能。

這已在文件中得到很好的解釋:

創建儲存函式時,必須聲明它是確定性的或不修改數據。否則,數據恢復或複制可能不安全。

預設情況下,要接受 CREATE FUNCTION 語句,必須顯式指定 DETERMINISTIC、NO SQL 或 READS SQL DATA 中的至少一個。否則會發生錯誤:

ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

要放寬函式創建的上述條件(您必須具有 SUPER 特權,並且必須將函式聲明為確定性或不修改數據),請將全域 log_bin_trust_function_creators 系統變數設置為 1。

參考:mysql-documentation(閱讀此內容,如範例所示。)

關於您的第二個問題,如果它是動態的並且如果您重新啟動伺服器會改變:

  • 是的,它是一個動態變數。
  • 如果您不更新配置以反映更改,則該變數將在重新啟動時更改。

參考:mysql-documentation-again

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