Datenbank per SSH übertragen

G

Geheimagent

Jungspund
Kurze Frage, wie sieht ein Befehl aus, um per SSH eine Datenbank in einem entfernten Rechner zu übertragen.
Bisher hatte ich immer einen phpMyAdmin, der steht mir nicht mehr zur Verfügung, und die Daten sind auch zu groß.

Mit diesem Befehl könnte ich eine Datenbank lokal importieren:
Code:
mysql -u[dbuser] -p[dbpass] [dbname] < ./backup.sql

Das einloggen, mit ssh ist mir soweit klar, nur nicht, wie ich das in einem rutsch vom lokalen Rechner auf die entfernte Datenbank einspiele.

Die Datenbank befindet sich als datenbank.sql.gz unter /home/geheim/
 
Code:
scp datenbank.sql.gz user@hostname:/home/foobar/
 
Ich glaub ich habs falsch verstanden.

Was willst du genau? Remote Datenbank mit lokalen Daten schwängern?
ssh <remoterechner> mysql -h localhost -u <user> -p < lokalesfile.sql
 
Zuletzt bearbeitet:
Ich glaub ich habs falsch verstanden.

Was willst du genau? Remote Datenbank mit lokalen Daten schwängern?
ssh <remoterechner> mysql -h localhost -u <user> -p < lokalesfile.sql

Genau, ich möchte die Daten nicht erst an den Fremdrechner übertragen, und sie dann in die Datenbank damit füllen, sondern dieses direkt machen. Ich probier das dann mal gleich aus. Danke.

Edit: Es wird 3 mal das Passwort abgefragt, und dann abgelehnt. Verstehe ich das richtig, ich brauche mich nur mit der IP des Rechners einloggen also:

Code:
ssh 666.666.666.666 mysql -h localhost -u geheimagent < geheimmatrial.sql
passwort: geheim

Beim Passwort gebe ich das von der Datenbank ein.
 
Zuletzt bearbeitet:
Du musst das Server-Passwort eingeben (also für den Unix User)! Wenn du zusätzlich noch ein Passwort für den MySQL-User brauchst sieht das ganze nochmals anderst aus :) - dann fehlt beispielsweise das "-p" beim mysql Command.
 
Kann man auch daran erkennen, das ssh mit
Code:
Password:
zur Eingabe des Passwords auffordert, und mysql mit
Code:
Enter Password:
 
Kann man auch daran erkennen, das ssh mit
Code:
Password:
zur Eingabe des Passwords auffordert, und mysql mit
Code:
Enter Password:

Ah,Danke.

Du musst das Server-Passwort eingeben (also für den Unix User)! Wenn du zusätzlich noch ein Passwort für den MySQL-User brauchst sieht das ganze nochmals anderst aus :) - dann fehlt beispielsweise das "-p" beim mysql Command.

Also das ist so, dass ich sogar ein anderen Benutzer bei der Datenbank habe, als beim ssh, da logge ich mich als root ein, müsste ich den mit

ssh root@666.666.666.666 mysql -h localhost -u geheimagent < geheimmatrial.sql

davorsetzen, und das "-p" vor dem "-h" ?

Danke Dir schon mal für Deine Hilfe herzlichst.
 
Achne, du erlaubst root das einloggen per ssh? *räusper*
 
Hallo

Generell kannst du mit ssh remote Command absetzen.
Am besten du generierst dir dazu einen key und richtest dir eine entsprechende ~/.ssh/config ein.
Dann kannst du einen Alias verwenden, ohne Login mit Passwort. Das ist die sicherste Variante.

e.g:
Code:
ssh hostalias "ls -la"

Gruß Wolfgang
 
OffTopic:

Generell sind remote root-logins böse.
Lege dir einen User an, oder eine Gruppe die ssh-login darf (z.b. ssh-user)
und dann
Code:
adduser geheimagent ssh-user
und dann machst dir nen key mit passphrase.


MFG caba{_,}
 
Hallo Geheimagent

Mit Passwort
ssh root@666.666.666.666 "mysql -h localhost -u geheimagent -p" < geheimmatrial.sql

Du kannst das Passwort auch direkt mitliefern. Wenn das Passwort AbC123 ist, wäre der String dann:
ssh root@666.666.666.666 "mysql -h localhost -u geheimagent -pAbC123" < geheimmatrial.sql

Ich schlage dir aber folgendes vor:
- Kein root-User zum einloggen. Jeder User kann "mysql" benutzen und muss sich ja sowieso an der DB authentifizieren
- Wenn du keine kritischen Daten in der DB hast, erstelle einen MySQL User der lokal ohne Passwort einloggen kann.
- Wenn du ein Passwort spezifizieren willst, dann musst du dir bewusst sein, dass dieses lesbar sein wird für lokale Benutzer solange du die mysql-Datei lädst ("ps -ef" zeigt den Befehl inkl. dem Passwort an) -> wenn du also nur die DB lädst, wenn du anwesend bist, kannst du das auch auf der Konsole eingeben

P.S. die IP kanns gar ned geben, das weisste schon :)
 
Zuletzt bearbeitet:
Danke für die Informationen. Die Idee einen Datenbanbenutzer ohne Passwort anzulegen ist nicht schlecht, normal könnte man das hinterher dann ja abändern. In Plesk lässt sich jedoch kein Datenbankuser anlegen ohne Passwort, und wie ich gerade festellte, wird ein Datenbankuser jeweils für eine Datenbank angelegt.
und über die Konsole mit root wird, wie ich gerade feststelle das ganze geblockt.
Also komme ich nicht drum rum, erst mal User und Key anzulegen.
Ansonsten ist meine Frage bestens beantwortet. Ich danke Euch für die schnelle und freundlich Hilfe.
 

Ähnliche Themen

PHPmyAdmin login funktioniert nicht

OS X SSH bereit machen

Samba als PDC

Diverse Netzwerkprobleme (mysql,ssh..)

per ssh auf einem anderen Rechner einen Publickey generieren

Zurück
Oben