AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

RDS で mysqldump すると FLUSH TABLES WITH READ LOCK

単体で動作させている RDS だと、以前書いたような以下のようなお作法で一貫性のある SQL ダンプが取得できる。

donbulinux.hatenablog.jp

これをこのままマルチ AZ な RDS 環境で実行すると以下のエラーになる。

mysqldump: Couldn't execute 'FLUSH TABLES WITH READ LOCK': Access denied for user 'example'@'%' (using password: YES) (1045)

--single-transaction でロックしようとしてエラーが出るので、このオプションを外して以下のようにすれば、(一応) mysqldump が通るようになる。

mysqldump -u ${ユーザ名} -p -h ${エンドポイント} --quick --skip-triggers --set-gtid-purged=OFF ${DB名} > ${ファイル名}

ファイル名は最近は以下のようにしている。 便利。

`date "+%Y%m%d%H%M%S"`-データベース名.sql

ちなみに

このエラーメッセージに対して AWS 様はこのようにおっしゃっている。

aws.amazon.com

なんの役にもたたねえ、ぶっ○すぞ。 という強い気持ちが溢れてくる。