4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RDSのmysqlでトリガーが作れない I couldn't create trigger in mysql RDS

Posted at

RDSでmysqldumpで取得したファイルをインポートしようとしたら、以下のエラーが出ました。
その中には、トリガーも含まれていたので、以下のような記述もありました。
I got dump file by using mysqldump, and tried to import it into mysql on RDS.
But, this error occurred.

/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `product_log` AFTER INSERT ON `product`
FOR EACH ROW
    INSERT INTO ........

RDSではsuper権限は持てないので、以下を設定しましょう、というのは、公式ドキュメントにも載っているので、設定してみた。
In RDS, super privilege is unavailable. We need to change a parameter group.

ERROR 1419 (HY000) at line 3155: 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)

この状況を緩和するには、RDS カスタムパラメーターグループの log_bin_trust_function_creators システム変数に 1 を設定します。
To relax this condition, set the global log_bin_trust_function_creators system variables to 1 through the RDS custom parameter group.

しかし、状況は解決せず、筆者の環境では、それでも以下のエラーが出た。
But, the problem wasn't solved. the error below occurred in my case.

ERROR 1227 (42000) Access denied; you need (at least one of) the SUPER privilege(s) for this operation

トリガーなどの作成時にDEFINER属性が含まれていると、作成時にDEFINER属性で指定したユーザーを使おうとしてしまうので、上記のエラーが出てしまう。そのため、
If dumpfile includes DEFINER attribute, mysql tries to create trigger with the specified user in DEFINER attribute.
To solve this is that remove the DEFINER attribute.

DEFINER=`root`@`localhost`

この部分を削除してあげれば、問題なく作成することができます。
My problem was solved by removal of this attribute!

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?