Amazon RDS MySQL DB インスタンスで関数、プロシージャ、トリガーを有効にする方法を教えてください。

最終更新日: 2020 年 11 月 20 日

Amazon Relational Database Service (Amazon RDS) MySQL DB インスタンスの関数、プロシージャ、トリガーを有効にするにはどうすればよいですか?

解決方法

Amazon RDS はマネージド型サービスです。SYS アクセス (SUPER 権限) は提供されていません。MySQL DB インスタンスでバイナリログが有効になっている場合は、DB インスタンス用に作成するカスタム DB パラメータグループで log_bin_trust_function_creators パラメータを true に設定します。詳細については、Amazon RDS の「マスターユーザーアカウント権限」を参照してください。

DB パラメータグループを指定せずに DB インスタンスを作成した場合、新規のデフォルト DB パラメータグループが Amazon RDS により作成されます。詳細については、「DB パラメータグループを使用する」を参照してください。

  1. DB パラメータグループを作成します
  2. 次のように DB パラメータグループを変更します: log_bin_trust_function_creators=1
  3. [変更を保存] を選択します。
    注: この DB パラメータグループは、5 分以上待ってから DB インスタンスで使用します。
  4. ナビゲーションペインで [データベース] をクリックします。
  5. DB パラメータグループに関連付ける DB インスタンスを選択します。
  6. [アクション]、[変更] の順にクリックします。
  7. DB インスタンスに関連付けるパラメータグループを選択します。
  8. DB インスタンスを再起動します
  9. 注: パラメータグループ名は即時に変更されますが、パラメータグループへの変更は、インスタンスがフェイルオーバーなしで再起動するまで適用されません。

MySQL DB インスタンスで自動バックアップを有効にすると、バイナリログ記録も有効になります。トリガーの作成時に、次のエラーメッセージが表示されることがあります:「エラー 1419 (HY000): SUPER 権限を持っておらず、バイナリログが有効になっています (安全性の低いlog_bin_trust_function_creators 変数の使用をお勧めします)」

このエラーが表示された場合は、log_bin_trust_function_creators パラメータを 1 に変更して、DB インスタンスで関数、プロシージャ、トリガーを許可します。