dullwhaleのメモ帳

何度も同じことを調べなくてよいように...

MySQLで複数のDATABASEのダンプを取得してリストアしたい

mysqldumpコマンドのオプション--databasesでダンプ対象DATABASEを複数指定できる。

RDSインスタンスからダンプして別のRDSインスタンスへリストアすることを考える。

ダンプコマンド

mysqldump -uroot -p -h foo.ap-northeast-1.rds.amazonaws.com --databases a_database b_database  | gzip --stdout > foo.sql.gz

リストアコマンド

gzcat foo.sql.gz | mysql -uroot -p -h bar.ap-northeast-1.rds.amazonaws.com

もちろん、パイプでmysqldumpコマンドとmysqlコマンドを繋げても良いし、teeとprocess substitutionを使って「foo.sql.gzを作りつつ、リストアする」こともできる。