web-dev-qa-db-ja.com

リモートホストからのmysqldump

Ssh接続を介してリモートホストからデータベースをダンプし、ローカルコンピューターにバックアップファイルを保持することは可能ですか?.

もしそうなら、どのようにこれを達成できますか?

私はそれがsshからダンプまたはその逆へのパイプ出力のいくつかの組み合わせになると仮定していますが、それを理解することはできません。

34
Marty Wallace

これにより、sshを介してローカルファイルにダンプ、圧縮、ストリーミングされます。

ssh -l user remoteserver "mysqldump -mysqldumpoptions database | gzip -3 -c" > /localpath/localfile.sql.gz 
65
Michel Feldheim

@MichelFeldheimのソリューションから始めて、次のものを使用します。

$ ssh user@Host "mysqldump -u user -p database | gzip -c" | gunzip > db.sql
17

ssh -f [email protected] -L 3306:server.com:3306 -N

その後:

mysqldump -hlocalhost > backup.sql

また、mysqlをローカルで実行していないと仮定します。その場合、ポートを他の何かに調整できます。

3
Michael Irey

Michel Feldheim が提供する回答を出発点として使用して、リモートホストでのmysqldumpコマンドの自動化を容易にするために script を作成しました。

mysqldump-remote

このスクリプトを使用すると、SSHの有無にかかわらず、オプションで環境変数を含む.envファイルを使用して、リモートホストからデータベースダンプをフェッチできます。

データベースの自動バックアップにスクリプトを使用する予定です。 問題を作成する / 貢献 に気軽に-これが他の人にも役立つことを願っています!

1
Logan