blogですかい

株式会社Loco Partnersに勤めるエンジニアうちの一人のブログ。仕事、プライベートで学んだことなどを発信し、その内容がたとえ少数でも誰かの役に立ったらなら、それはとっても嬉しいなって

RDS MySQLインスタンスにてトリガを設定する

RDSのMySQLインスタンスにてトリガを作成するには

MySQLでは、binlogを出力する設定になっている場合、SUPER権限を持つユーザでないとトリガやファンクションを作成できない。

RDSのMySQLインスタンスは、リードレプリカの有無に関係なくbinlogを出力する設定になっており、 且つ利用者側ユーザにSUPER権限は無いため、トリガを作成しようとすると下記のようなエラーが出る。

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)

解決手段

グローバル変数log_bin_trust_function_creatorsの値を1にすれば良い。 RDSの場合はパラメータグループを操作する。

f:id:oh-sky:20130825202630p:plain

この変更は再起動すること無く反映される。

参考:http://dev.mysql.com/doc/refman/5.1/ja/stored-procedure-logging.html