AWS RDSのAurora(MySQL)でデータベースを移行しようとしたところ以下の様なエラーや絵文字が??
に置き換わってしまっていたのでdumpファイルを取るためのオプションのメモ。
ERROR 1227 (42000) at line <line number>: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
super権限が必要と言われていますがRDSではrdsadminしかこの権限を持てないので設定できません。--set-gtid-purged=OFF
のオプションを指定すると権限の必要なGTIDの設定が出力されなくなるので設定します。
また、MySQLクライアントのcharacter-setがutf8mb4になっていないと絵文字が??
に化けてしまうので--default-character-set=utf8mb4
を指定します。
バックアップ
mysqldump --single-transaction --default-character-set=utf8mb4 --set-gtid-purged=OFF -uuser_name -p -hexample.ap-northeast-1.rds.amazonaws.com db_name > utf8mb4_dump.sql
リストア
リストアは通常通り行います。
mysql -uuser_name -p -hexample.ap-northeast-1.rds.amazonaws.com db_name < utf8mb4_dump.sql