跳至內容

如何為 Amazon RDS for MySQL 資料庫執行個體開啟函數、程序和觸發器?

1 分的閱讀內容
0

我想要為 Amazon Relational Database Service (Amazon RDS) for MySQL 資料庫執行個體開啟函數、程序和觸發器。

解決方法

Amazon RDS 是受管服務,且不提供系統存取權限 (超級使用者權限)。如果您開啟二進位記錄,請在資料庫執行個體的自訂資料庫 (DB) 參數群組中將 log_bin_trust_function_creators 設定為 True

如果您建立資料庫執行個體而未指定資料庫參數群組,則 Amazon RDS 會建立新的預設資料庫參數群組。如需詳細資訊,請參閱參數群組概觀

若要為 Amazon RDS for MySQL 資料庫執行個體開啟函數、程序和觸發程序,請完成下列步驟:

  1. 建立資料庫參數群組
  2. 修改自訂資料庫參數群組,然後將 log_bin_trust_function_creators 值設為 1
    **注意:**當您設定 log_bin_trust_function_creators=1 時,Amazon RDS 可能會將不安全事件寫入二進位日誌。二進位記錄是以陳述式為基礎,類似於以下範例:(binlog_format=STATEMENT)。
  3. 選擇 Save changes (儲存變更)。
    **注意:**在與資料庫執行個體搭配使用資料庫參數群組之前,請至少等待 5 分鐘。
  4. 在導覽窗格中,選擇 Databases (資料庫)。
  5. 選取要與資料庫參數群組相關聯的資料庫執行個體。
  6. 選擇 Modify (修改)。
  7. 選取要與資料庫執行個體建立關聯的參數群組
  8. 重新啟動資料庫執行個體
    **注意:**參數群組名稱會立即變更。在您重新啟動執行個體 (無需容錯移轉) 後,Amazon RDS 將套用參數群組變更。

如果您已經使用自訂參數群組,則只需完成步驟 2 和 3。參數 log_bin_trust\function\creators 是動態參數,不需要重新啟動資料庫。

如果您為 MySQL DB 執行個體開啟自動備份,那麼也會開啟二進位記錄。如果您建立觸發程序,那麼您可能會收到以下錯誤訊息:

"ERROR 1419 (HY000): You don't have the SUPER privilege and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable)" (「錯誤 1419 (HY000):您沒有 SUPER 權限,並且已啟用二進位記錄 (也許可改用安全性較低的 log_bin_trust_function_creators 變數)」)

如果您收到此錯誤,請檢查 log_bin_trust_function_creators 參數。如果該參數未設定為 1,則將值更新為 1。如果該參數設定為 1,但仍收到存取被拒絕錯誤,請參閱如何解決使用 mysqldump 將資料匯入到 Amazon RDS for MySQL 資料庫執行個體時,出現的 1227 和定義器錯誤?

如需參數 log_bin_trust_function_creators 的詳細資訊,請參閱 MySQL 網站上的 log_bin_trust_function_creators儲存程式二進位記錄

相關資訊

使用多可用區域資料庫叢集的資料庫叢集參數群組