Verzeichnisübertragung von mySQL-Datenbank

Gast #3535861
Lesenswert?

Ich habe zwei Rechner mit Debian-Derivaten drauf. Auf beiden ist die 
selbe Verseion von mySQL (Server+Client) installiert.

Ich möchte die Datenbank von Rechner A auf Rechner B portieren, da 
Rechner A zukünftig nicht mehr der mySQL-Server sein soll.

Gibt es dazu ein Hilfsprogramm? Oder reicht es aus, wenn ich einfach das 
Verzeichnis mit der Datenbank kopiere?
#3537961
Lesenswert?

Verzeichnisübertragung schrieb:
> Ich habe zwei Rechner mit Debian-Derivaten drauf. Auf beiden ist die
> selbe Verseion von mySQL (Server+Client) installiert.
>
> Ich möchte die Datenbank von Rechner A auf Rechner B portieren, da
> Rechner A zukünftig nicht mehr der mySQL-Server sein soll.

Du meinst sicher kopieren.

> Gibt es dazu ein Hilfsprogramm? Oder reicht es aus, wenn ich einfach das
> Verzeichnis mit der Datenbank kopiere?

Bei Beachtung aller Randbedingungen funktioniert Kopieren. Allerdings 
rate ich trotzdem ab, weil deine Frage nicht so klingt als würdest du 
dich mit MySQL irgendwie auskennen und die evtl. auftretenden Probleme 
diognostizieren oder lösen können.

Die kanonische Lösung heißt mysqldump. Und der einfachste (wenn auch 
nicht schnellste) Weg geht so:

1. auf dem Rechner A:
   mysqldump -u root --all-databases >dump.sql

2. dump.sql auf den Rechner B kopieren

3. auf dem Rechner B:
   mysql -u root <dump.sql

Das setzt voraus, daß root@localhost ein MySQL-Superuser ist (ist der 
Default) und kein Paßwort hat (ist der unsichere Default). Falls du ein 
Paßwort gesetzt hattest, mußt du jeweils noch die Option -p mitgeben und 
das Paßwort am Prompt eintippen.

Im Prinzip kann man sich das extra File sparen und mysqldump und 
mysql per Pipe verketten (dafür gibt es 3 Möglichkeiten: beide auf A 
laufen lassen, beide auf B laufen lassen, je eins auf A/B und SSH 
dazwischen). Aber wenn du nicht zig Gigabytes an Daten hast, dann ist 
der Vorteil marginal.

Speziell bei Debian gibt es ein potentielles Problem. Debian legt beim 
Installieren von MySQL einen System-Account an mit zufällig gewähltem 
Paßwort. Die Daten stehen in /etc/mysql/debian.cnf (o.ä. je nach Debian 
Version). Da die o.b. Prozedur wirklich alles kopiert, inklusive dem 
Debian-Account, muß man das Konfigfile mit dem Zufallspaßwort auch von A 
nach B kopieren. Wenn man das vergißt, geht z.B. das logrotate von 
Debian nicht mehr.


HTH, XL

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren