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 パラメータグループを使用する」を参照してください。
- DB パラメータグループを作成します。
- 次のように DB パラメータグループを変更します: log_bin_trust_function_creators=1
- [変更を保存] を選択します。
注: この DB パラメータグループは、5 分以上待ってから DB インスタンスで使用します。 - ナビゲーションペインで [データベース] をクリックします。
- DB パラメータグループに関連付ける DB インスタンスを選択します。
- [アクション]、[変更] の順にクリックします。
- DB インスタンスに関連付けるパラメータグループを選択します。
- DB インスタンスを再起動します。
注: パラメータグループ名は即時に変更されますが、パラメータグループへの変更は、インスタンスがフェイルオーバーなしで再起動するまで適用されません。
MySQL DB インスタンスで自動バックアップを有効にすると、バイナリログ記録も有効になります。トリガーの作成時に、次のエラーメッセージが表示されることがあります:「エラー 1419 (HY000): SUPER 権限を持っておらず、バイナリログが有効になっています (安全性の低いlog_bin_trust_function_creators 変数の使用をお勧めします)」
このエラーが表示された場合は、log_bin_trust_function_creators パラメータを 1 に変更して、DB インスタンスで関数、プロシージャ、トリガーを許可します。