先日、AWSのWordpressサイトからSQLダンプしたファイルを別のサーバーにインポートしようとした時にエラーが出てインポートできませんでした。
SQLのインポートで引っかかると根が深いことが多く結構へこみます。
エラーの内容
エラーの内容は、以下のようなメッセージで何が悪いのか全く分かりませんでした。
ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
dumpファイルの中にGTIDに関するコードが入り込んでいる
対処方法:GTIDに関する記述を消す
以下の4つのSETを消せばよい。
sqlダンプファイルをエディタで編集します。
SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN;
SET @@SESSION.SQL_LOG_BIN= 0;
SET @@GLOBAL.GTID_PURGED='';
SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;
恒久対策:–set-gtid-purged=OFFオプションをつけてダンプしなおす
部分的にmysqldumpを取得する場合は、--set-gtid-purged=OFF
オプションをつけるようにする。
[MySQL] ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER privilege(s) for this operation - Qiita
エラーメッセージと発生箇所MySQL上でdumpファイルを読み込もうとした時に発生。ERROR 1227 (42000) at line 18: Access denied; you need …
まとめ
今回AWSのサイトからsqlダンプファイルを入手したのですが、AWSのサイトのDB内に複数のデータベースがあったのだと思います。
複数データベースから1つだけmysqldumpした時に--set-gtid-purged=OFF
オプションが無かったので今回のようなことになったのだと思います。