mysqldump auf anderem Netzwerkrechner ablegen

Teckler

Lt. Commander
Registriert
Mai 2020
Beiträge
1.170
Hallo zusammen,

ich versuche schon einige Zeit Dumps auf einem anderen ubuntu Server im gleichen Netzwerk zu schreiben, bekomme es aber nicht hin.
Grundlage ist der Befehl hier den ich gefunden habe:
mysqldump -h <Server> -u<Benutzername> -p<Passwort> <Datenbank> > <SQL-Datei>

Bekomme immer den Fehler: No such file or directory

Habe die 3 Optionen wie folgt befüllt, aber offensichtlich nicht richtig:
h = den Servername vom Zielrechner
u = Samba Share Benutzername vom Zielrechner
p = Samba Share Passwort vom Zielrechner

Habe es auch so probiert (ohne Leerzeichen im Servername) , geht aber auch nicht:
mysqldump -h<Server> -u<Benutzername> -p<Passwort> <Datenbank> > <SQL-Datei>

Ist die Syntax richtig ?
Kann mysqldump überhaupt auf anderem Rechner (Zielrechner) einen dump über Samba ablegen ?

Der dump auf dem gleichen Rechner (Quellrechner) funktioniert, so zb:
sudo mysqldump Abfragen > /home/user1/dump/Abfragen.sql

Hier die Grundlagen, vlt liegt dort ja der Fehler

Quellrechner
user1
Ubuntu Server 21.04
MariaDB mysql Ver 15.1 Distrib 10.5.10-MariaDB

Zielrechner
user2
Ubuntu Server 21.04
MariaDB mysql Ver 15.1 Distrib 10.5.10-MariaDB
Samba Freigabe mit allen Berechtigungen chmod -R 777 /home/user2/...

Danke schon mal vorab und Gruß an Alle
 
Bei mysqldump sind die -h -u und -p eigentlich auf die MySQL bezogen.
Heißt je nach Freigabe in der MySQL kann auf dem Zielrechner der Dump gestartet werden. Dann muss als Host natürlich der Rechner auf die DB liegt mit einem entsprechenden Nutzer und Passwort angegeben werden.

Das einfachste wäre daher wahrscheinlich einfach einen entsprechenden User in der MySQL mit den nötigen Rechten anlegen der auf dem Zielrechner mysqldump aufruft.
Alternativ via script nach dem mysqldump den Dump dort ablegen wo er hin soll.
 
  • Gefällt mir
Reaktionen: Teckler und slrzo
No such file? 🤔

Hast du die MySQL/Maria Client Tools auf dem/den jeweiligen PCs installiert?
-u und-p wollen natürlich den DatenbankZugang. Mit Samba hat das gar nichts zu tun.
 
  • Gefällt mir
Reaktionen: Teckler
Mir scheint du machst von Verständnis her eine Vermischung.
Entweder Dump local erstellen und per SCP rüber kopieren oder mit der remote DB Verbinden und Dump direkt auf die Zielrechner ziehen
 
  • Gefällt mir
Reaktionen: Teckler
BigO schrieb:
Bei mysqldump sind die -h -u und -p eigentlich auf die MySQL bezogen.
RalphS schrieb:
-u und-p wollen natürlich den DatenbankZugang. Mit Samba hat das gar nichts zu tun.
conf_t schrieb:
Mir scheint du machst von Verständnis her eine Vermischung.
Danke an Euch für die super schnellen Antworten !
Die Samba Freigabe kam mir auch schon komisch vor ..dort liegt also mein Hauptfehler
Und ich muss den Ablauf umdrehen
Nicht vom Quellrechner auf den Zielrechner kopieren sondern anders rum

conf_t schrieb:
Entweder Dump local erstellen und per SCP rüber kopieren oder mit der Remote DB Verbinden und Dump direkt auf die Zielrechner ziehen
SCP kenne ich seither nicht, scheint ein sicheres SSH kopieren zu sein
Dafür wären dann aber 2 Schritte nötig.

Also scheint "Remote DB Verbinden und Dump direkt auf die Zielrechner ziehen" der beste Weg zu sein.

@conf_t Dürfte ich noch fragen wie Remote DB Verbinden stattfindet ?
Kann ich dann mit einem mysqldump Befehl direkt auf den Zielrechner schreiben lassen ?

NACHTRAG: habs mal kurz probiert und auf dem Zielrechner gestartet mit der Zeile:

sudo mysqldump -hQuellrechnername -uQuellrechnerSQLuser -pQuellrechnerSQLpasswort Abfragen > /home/user2/Quellrechnerdump/Abfragen.sql

Immerhin kommt schon andere Fehlermeldung:
Got error: 2005: "Unknown MySQL server host 'Quellrechnername' (-3)" when trying to connect

+-------------+-----------+----------------------------------------+
| User | Host | plugin |
+-------------+-----------+----------------------------------------+
| QuellrechnerSQLuser | % | mysql_native_password |
+-------------+-----------+----------------------------------------+

Muss noch probieren obs an der user Berechtigung oder dem Servernamen liegt
 
Zuletzt bearbeitet:
Man das mysqldump auf dem Zielrechner ausführen. Dafür muss es jedoch einen Nutzer in der MySQL geben, der von dem Zielrechner auf die QuellDB zugriff hat.

Heißt auf dem Zielrechner
Bash:
mysqldump -h quellrechner -u user_in_mysqldb -p strong_user_pw database_name > /belieberiger_pfad/dump.sql
Dafür muss halt in der MySQL in dem MySQL Schema in der Tabelle user ein entsprechender Nutzer existieren. Dieser muss vom Hostpattern passen. Zugriffe auf die MySQL können mit IP Adressen bzw Hostname oder ganze Netze gesichert werden. Das bedeutet, dass ich z.B ein User dump@localhost eintragen kann. Der Nutzer dump kann dabei nur von dem Host auf dem die DB läuft auf die DB zugreifen.

Um nun Remote Zugriff zu erhalten muss ein Nutzer vorhanden sein, welcher Entweder dump@zielrechner_IP oder auch dump@hostname lautet. In der DB lassen sich die User z.B so abfragen:
SQL:
select user,host from mysql.user;
Bei dem Zugriff kann auch ein dump@% genutzt werden. Damit kann dump von überall auf die DB. Egal ob localhost oder sonst ein anderer Rechner im Netz. Das sollte allerdings mit bedacht genutzt werden.
 
  • Gefällt mir
Reaktionen: Teckler
@BigO Danke sehr... der grundsätzliche Befehl auf dem Zielrechner dürfte damit geklärt sein

Heißt aber ich muss auf dem Quellrechner noch einen user anlegen der dump@?? heißt ?
Ich habe ja einen "QuellrechnerSQLuser" der im Quellrechner Host als % und mysql_native_password angelegt ist... der reicht demnach nicht ?

Somit habe ich wieder einen Ansatz zum rumtüfteln
Verabschiede mich jetzt und mache dann wohl Morgen früh weiter

Wünsche einen sonnigen Tag für Alle
 
Nein wird nicht zwingend benötigt. Das war lediglich ein Beispiel. Du hast ja bereits einen User mit der entsprechenden Hostfreigabe.
Nach der Mysql Fehlermeldung würde ich vermuten, dass der "Quellrechnername" evtl nicht im DNS aufgelöst werden kann. Versuch alternativ mal direkt die IP. Wenn das Funktioniert evtl der Hostname mit der gesamten Domain. Ansonsten wäre eine Prüfung ob der Quellrechnername allgemein zu irgendwas aufgelöst wird interessant. Die IP Adresse des Quellrechners sollte aber in jedem Fall funktionieren.
 
  • Gefällt mir
Reaktionen: Teckler
BigO schrieb:
Nach der Mysql Fehlermeldung würde ich vermuten, dass der "Quellrechnername" evtl nicht im DNS aufgelöst werden kann.
Genau das war das Problem.. Es geht jetzt !
Ich hab den Quellrechnernamen nicht vollständig geschrieben.
Es funktioniert genau so wie Du es im Link beschrieben hast.

Danke nochmal !
 

Ähnliche Themen

Antworten
18
Aufrufe
5.492
Antworten
4
Aufrufe
1.300
Zurück
Oben