it-swarm.com.de

Wie mysqldump Remote-DB von der lokalen Maschine

Ich muss einen mysqldump einer Datenbank auf einem Remote-Server ausführen, aber auf dem Server ist mysqldump nicht installiert. Ich möchte den mysqldump auf meinem Computer verwenden, um eine Verbindung zur entfernten Datenbank herzustellen und den Dump auf meinem Computer auszuführen.

Ich habe versucht, einen SSH-Tunnel zu erstellen und dann den Dump durchzuführen, aber das scheint nicht zu funktionieren. Ich habe es versucht:

ssh -f -L3310:remote.server:3306 [email protected] -N

Der Tunnel wird mit Erfolg erstellt. Wenn ich mache

telnet localhost 3310

Ich bekomme ein Klappentext, der die korrekte Server-MySQL-Version anzeigt. Die folgenden Schritte scheinen jedoch zu versuchen, eine lokale Verbindung herzustellen

mysqldump -P 3310 -h localhost -u mysql_user -p database_name table_name
153
Mauritz Hansen

Da ich es bei serverfault noch nicht gesehen habe und die Antwort ganz einfach ist:

Veränderung:

ssh -f -L3310:remote.server:3306 [email protected] -N

Zu:

ssh -f -L3310:localhost:3306 [email protected] -N

Und ändere:

mysqldump -P 3310 -h localhost -u mysql_user -p database_name table_name

Zu:

mysqldump -P 3310 -h 127.0.0.1 -u mysql_user -p database_name table_name

(verwende nicht localhost, es ist einer dieser 'special meaning'-Unsinns, der sich wahrscheinlich eher über Sockets als über Ports verbindet.)

edit : gut, um es näher zu erläutern: wenn Host auf localhost gesetzt ist, wird ein konfigurierter (oder Standard) --socket Option wird angenommen. Siehe das Handbuch für welche Optionsdateien gesucht/verwendet werden. Unter Windows kann dies eine Named Pipe sein.

223
Wrikken

Man kann mysqldump lokal gegen einen entfernten Server aufrufen.

Beispiel, das bei mir funktioniert hat:

mysqldump -h hostname-of-the-server -u mysql_user -p database_name > file.sql

Ich folgte der mysqldump Dokumentation auf Verbindungsoptionen.

74
Ondrej Burkert