mysqldump
でごっそりダンプしたsqlをそのままRDSに入れようとしたらエラー出た
1 | ERROR 1419 (HY000) at line 93: 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) |
対象のエラー行はこんな感じのSQLで、CREATE TRIGGER
しようとしてた
1 | 93 /*!50003 CREATE*/ /*!50017 DEFINER=`username`@`%`*/ /*!50003 TRIGGER `hoge_trig` BEFORE INSERT ON `tbl_xxxx` FOR EACH ROW SET [以下略] */;; |
対処(1) log_bin_trust_function_creators = 1
AWS RDS MySQL で create function できるようにする - Qiita
log_bin_trust_function_creators
に 1
をセットするとよいらしい。対象のパラメータグループにセットする
だめじゃん
しかし、これだけだとエラーが出た
1 | ERROR 1227 (42000) Access denied; you need (at least one of) the SUPER privilege(s) for this operation |
対処(2) DEFINERを削除
RDSのmysqlでトリガーが作れない I couldn’t create trigger in mysql RDS - Qiita
DEFINER
を見るとたしかに、ローカルのユーザ名のままダンプされていたので削除したらうまくいった