traller
Goto Top

MySQLDump über SSH

Hallo,
ich möchte die Datenbank in einem remoten MySQL-Server mit
mysqldump -h HOSTNAME -u NUTZER -pPASSWORT -C --add-drop-table --complete-insert DATENBANK > DATENBANK.sql
sichern. Dieses funktioniert so weit. Wie kann ich diesen Befehl über einen verschlüsselten SSH-Tunnel ausführen?

Content-Key: 251005

Url: https://administrator.de/contentid/251005

Printed on: April 25, 2024 at 14:04 o'clock

Mitglied: 114757
114757 Oct 05, 2014 updated at 20:00:52 (UTC)
Goto Top
ssh user@your.host "mysqldump -h HOSTNAME -u NUTZER -pPASSWORT -C --add-drop-table --complete-insert DATENBANK > Datenbank.sql"
oder von remote in ein lokales file
ssh user@your.host "mysqldump -h HOSTNAME -u NUTZER -pPASSWORT -C --add-drop-table --complete-insert DATENBANK" > Datenbank.sql
Gruß jodel32
Member: traller
traller Oct 05, 2014 updated at 20:01:54 (UTC)
Goto Top
Zitat von @114757:

> ssh user@your.host "mysqldump -h HOSTNAME -u NUTZER -pPASSWORT -C --add-drop-table --complete-insert DATENBANK >
> Datenbank.sql"
> 
Gruß jodel32

damit erstellt er auf dem Server eine solche Datei. Zum Erstellen will ich aber die Rechnerressourcen des lokalen Hosts nutzen. Der Befehl und der Datenaustausch soll aber über SSH vom lokalen Host mit dem Server getunnelt werden.

Mit
mysqldump -h google.de -u NUTZER -pPASSWORT -C --add-drop-table --complete-insert DATENBANK 
würde also mein lokales Linux die Datenbank bei Google sichern. Der Dateiaustausch ist wohl unverschlüsselt und den will ich verschlüsseln. Das ist alles.
Mitglied: 114757
114757 Oct 05, 2014 updated at 20:07:22 (UTC)
Goto Top
Mitglied: 114757
114757 Oct 05, 2014 updated at 20:18:01 (UTC)
Goto Top
würde also mein lokales Linux die Datenbank bei Google sichern. Der Dateiaustausch ist wohl unverschlüsselt und den will ich verschlüsseln. Das ist alles.
dann brauchst du aber einen SSH Dienst auf dem Remotehost bei Google
Tunnel mit einem local to remote Portforwading aufbauen und dann localhost als Ziel im mysqldump Befehl verwenden, feddich.
SSH Port Forwarding
FreeSSHd und PuTTY - Ist diese Verbindung überhaupt noch verschlüsselt?
Member: traller
traller Oct 05, 2014 at 20:16:56 (UTC)
Goto Top
Zitat von @114757:

> würde also mein lokales Linux die Datenbank bei Google sichern. Der Dateiaustausch ist wohl unverschlüsselt und den
will ich verschlüsseln. Das ist alles.
dann brauchst du aber einen SSH Dienst auf dem Remotehost bei Google
Tunnel mit einem local to remote Portforwading aufbauen und dann localhost als Ziel im mysqldump Befehl verwenden, feddich.
SSH Port Forwarding

Ein SSH-Zugang existiert auf dem Server. Google war jetzt nur ein Beispiel.
Mitglied: 114757
Solution 114757 Oct 05, 2014 updated at 21:03:34 (UTC)
Goto Top
Zitat von @traller:

Ein SSH-Zugang existiert auf dem Server. Google war jetzt nur ein Beispiel.
ok, dann reicht das Portforwarding innerhalb des Tunnels wie oben verlinkt beschrieben, musst du nur an die Ports von mysql anpassen.
Member: traller
traller Oct 05, 2014 at 20:35:29 (UTC)
Goto Top
Zitat von @114757:

> Zitat von @traller:
>
> Ein SSH-Zugang existiert auf dem Server. Google war jetzt nur ein Beispiel.
ok, dann reicht das Portforwarding innerhalb des Tunnels wie oben verlinkt beschrieben, musst du nur an die Ports von mysql
anpassen.

ich hab es nun mal im Putty mit
ssh -L 3306:localhost:3306 benutzer@server
versucht. Er verbindet, zeigt mir im Putty dann aber das Terminal des Servers an. Wenn ich nun ein weiteres Putty öffne, und dort den mysqldump -h localhost ... mache, sagt er, es würde kein MySQL Server existieren.
Member: traller
traller Oct 05, 2014 at 21:05:09 (UTC)
Goto Top
Die Lösung:
Es kam nach einiger Zeit noch eine Fehlermeldung
 channel 3: open failed: administrativ
Also scheint mein Nutzer auf dem SSH-Server wohl nicht genug Rechte für ein Portforwarding zu haben. Habe mir jetzt anders geholfen, in dem ich eine OpenVPN-Verbindung aufgebaut habe. Da ging es komischerweise.
Member: maretz
maretz Oct 06, 2014 at 07:04:30 (UTC)
Goto Top
Moin,

wie hast du das in Putty gemacht? In Putty müsstest du ja irgendwo in der GUI die Portweiterleitung einrichten. Ich befürchte du hast auf dem Server einfach nur nen Tunnel auf sich selbst gemacht.

Du hast unter Putty ich glaub bei "SSH" die Forwardings. Local-Port 3306 geht auf 127.0.0.1:3306 -> dann kannst du mit deinem normalen MySQL-Desktop oder der Kommandozeile die DB sichern. Putty öffnet dir nur den Tunnel, alles was du in der Putty-Session eingibst passiert auf dem entfernten Server!

Z.B. bei Putty das Forward machen und dann bei dir auf der Kommandozeile (so du die MySQL-Tools installiert hast) mysqldump -h 127.0.0.1 ... sollte dann gehen.