MySQL のダンプをローカルホストにファイルを作成せずに直接リモートホストに保存する

ホスト入替えなどの際に直接リモートホストにDBのダンプを書き出す方法。

リモートホストからローカルのDBに接続してダンプするという選択肢もありますが、ここではローカルユーザでDBに接続し、ダンプファイルを転送する方法を紹介しています。

予めssh用のキーファイルを設定しておき
「 ssh REMOTEUSERNAME@remote.host.name 」がパスワード入力無しでリモートホストにログインできるようにしておきます。

/usr/bin/mysqldump \
–opt DBNAME –user=UNAME –password=PASS \
| gzip -c | ssh REMOTEUSERNAME@remote.host.name “zcat > /path/to/save/on/remotehost/dump.sql”

定期バックアップなどの際に、圧縮したまま保存する場合は以下のような感じで。

/usr/bin/mysqldump \
–opt DBNAME –user=UNAME –password=PASS \
| gzip -c | ssh REMOTEUSERNAME@remote.host.name “cat > /path/to/save/dump.sql.gz”