RDS でトリガーを作成しようとすると、次のエラーが発生します。
ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is
enabled (you *might* want to use the less safe log_bin_trust_function_creators
variable)
SUPER 権限を取得したり、バイナリ ログを無効にする方法はありますか?
答え1
SUPER権限を取得する方法があるかどうかはわかりませんが、バイナリログを無効にする方法はあります(これにより、トリガーを作成するためにSUPER権限を持つ必要がなくなります)。これは、変数を設定することで行われます。log_bin_trust_create_function_creators1 に。
- 新しいRDSパラメータグループを作成するまたは、現在のパラメータ グループ (デフォルトのパラメータ グループではない場合) を変更し、手順 3 ~ 5 をスキップすることもできます。
- そのパラメータグループの値を
log_bin_trust_create_function_creators
1に変更します - また、RDSインスタンスが現在使用しているパラメータグループ内のデフォルト以外の値を持つパラメータも変更します。これは、RDSインスタンスが関連付けられるパラメータグループは1つだけであるため必要です。
- 新しいパラメータグループを使用するようにRDSインスタンスを変更します。
- パラメータグループの変更がイベントログに表示されるまで待ちます。
- RDS インスタンスを再起動します。
log_bin_trust_create_function_creators
動的変数としてラベル付けされているため、再起動は必要ありませんが、変更を有効にするには、常に RDS インスタンスを再起動する必要がありました。別の方法があるかもしれませんが、まだ見つけていません。