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

DBをオンプレに戻す!AWS RDS(mariadb) から ダンプを取るぞ。


mysqldump -u admin -p -h xxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -x xxxxxdatabase  > dump.sql 
mysqldump: Couldn’t execute ‘FLUSH TABLES WITH READ LOCK’: Access denied for user ‘admin’@’%’ (using password: YES) (1045)
あれ?


$mysqldump --version
mysqldump Ver 10.14 Distrib 5.5.68-MariaDB, for Linux (x86_64)
バージョン問題なさそう。ロックできないのかな? 検索検索
Amazon RDS for MariaDB データベース コピー
次の例では、クライアントで mysqldump を実行し、ダンプをファイルに書き込みます。
Linux、macOS、Unix の場合:


mysqldump -h source_MySQL_DB_instance_endpoint \
    -u user \
    -p password \
    --port=3306 \
    --single-transaction \
    --routines \
    --triggers \
    --databases  database database2 > path/rds-dump.sql
これだ。–single-transaction ゆえに -x (–lock-all-tables) はNGね。素直にメッセージに従うと。


mysqldump -h xxxxxxxxxx.ap-northeast-1.rds.amazonaws.com \
-u admin \
-p \
--port=3306 \
--single-transaction \
--routines \
--triggers \
--databases xxxxxdatabase > dump.sql
通った!