我想要為 Amazon Relational Database Service (Amazon RDS) for MySQL 資料庫執行個體開啟函數、程序和觸發器。
解決方法
Amazon RDS 是受管服務,且不提供系統存取權限 (超級使用者權限)。如果您開啟二進位記錄,請在資料庫執行個體的自訂資料庫 (DB) 參數群組中將 log_bin_trust_function_creators 設定為 True。
如果您建立資料庫執行個體而未指定資料庫參數群組,則 Amazon RDS 會建立新的預設資料庫參數群組。如需詳細資訊,請參閱參數群組概觀。
若要為 Amazon RDS for MySQL 資料庫執行個體開啟函數、程序和觸發程序,請完成下列步驟:
- 建立資料庫參數群組。
- 修改自訂資料庫參數群組,然後將 log_bin_trust_function_creators 值設為 1。
**注意:**當您設定 log_bin_trust_function_creators=1 時,Amazon RDS 可能會將不安全事件寫入二進位日誌。二進位記錄是以陳述式為基礎,類似於以下範例:(binlog_format=STATEMENT)。
- 選擇 Save changes (儲存變更)。
**注意:**在與資料庫執行個體搭配使用資料庫參數群組之前,請至少等待 5 分鐘。
- 在導覽窗格中,選擇 Databases (資料庫)。
- 選取要與資料庫參數群組相關聯的資料庫執行個體。
- 選擇 Modify (修改)。
- 選取要與資料庫執行個體建立關聯的參數群組。
- 重新啟動資料庫執行個體。
**注意:**參數群組名稱會立即變更。在您重新啟動執行個體 (無需容錯移轉) 後,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 和儲存程式二進位記錄。
相關資訊
使用多可用區域資料庫叢集的資料庫叢集參數群組