mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces が発生した時の対処

先日、 mysqldumpAWS RDSインスタンス(aurora)に繋いでデータをdumpしようとしたら、見たことがないErrorが発生していたので調べました。

mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces

原因

調べてみると、MySQLバージョンのアップグレードの影響で tablespace の情報にアクセスするには PROCESS 権限が必要になったことが原因であるということがわかりました。

dev.mysql.com

対応方法

tablespaceの情報は不要だったので、MySQL公式のページに書いてあった通り--no-tablespacesを付けてmysqldumpを実行したら、エラーが発生しなくなりました。

他の方法としては、dumpするユーザにPROCESS権限をつけて対処することもでき、tablespace を含めてdumpしたい場合には権限をつけると良さそうです。

エラー発生の状況

dumpの方法

以下のようにしてdumpしていました。

$ mysqldump -u [DBユーザー] -p[DBパスワード] -h [DBホスト] [データベース名] > backup.sql

エンジン

以下のMySQL 5.6互換のAuroraでエラーが発生していました。エンジンは 5.6.mysql_aurora.1.23.1docs.aws.amazon.com

参考資料