2012-11-27 26 views
27

Ist es möglich, eine Datenbank von einem Remote-Host über eine SSH-Verbindung zu sichern und die Sicherungsdatei auf meinem lokalen Computer zu haben.mysqldump von Remote-Host

Wenn ja, wie kann dies erreicht werden?

Ich gehe davon aus, dass es eine Kombination von Rohrleitungsausgabe von der SSH zum Dump oder umgekehrt sein wird, aber kann es nicht herausfinden.

+0

ich auf ähnliche Antwort hier geantwortet habe: http://stackoverflow.com/questions/6564882/automate-mysqldump-to-local-computer-windows/13584425#13584425 –

Antwort

55

Dies würde Dump, komprimieren und

ssh in die lokale Datei-Stream über
ssh -l user remoteserver "mysqldump -mysqldumpoptions database | gzip -3 -c" > /localpath/localfile.sql.gz 
3

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

dann:

mysqldump -hlocalhost > backup.sql

vorausgesetzt, Sie haben auch nicht mysql lokal ausgeführt. Wenn Sie das tun, können Sie den Port auf etwas anderes einstellen.

+0

Können Sie ein Beispiel –

+1

liefern Ich brauche dies in einem single command obwohl das ist, warum ich dachte, es wäre eine Kombination von Rohren –

+0

Können Sie erklären, warum Sie das als einen einzigen Befehl brauchen? –

10

Ab @ MichelFeldheim-Lösung, würde ich verwenden:

$ ssh [email protected] "mysqldump -u user -p database | gzip -c" | gunzip > db.sql 
0

ich geschaffen habe eine script zu machen einfacher zu automatisieren mysqldump Befehle auf Remote-Hosts mit der Antwort von Michel Feldheim als Ausgangspunkt zur Verfügung gestellt:

mysqldump-remote

Das Skript ermöglicht es Ihnen, mit oder ohne SSH eine Datenbanksicherung von einem entfernten Rechner zu holen und optional eine .env Datei enthält Umgebungsvariablen.

Ich plane, das Skript für automatisierte Datenbanksicherungen zu verwenden. Fühlen Sie sich frei zu create issues/contribute - hoffe, dass dies auch anderen hilft!