Forum: PC Hard- und Software Verzeichnisübertragung von mySQL-Datenbank


von Verzeichnisübertragung (Gast)


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?

von Peter II (Gast)


Lesenswert?

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

aber saubersten geht das mit mysql-dump - der erzeugt eine große 
Textdatei die kannst du denn auf der andere Seite einspielen.

von Verzeichnisübertragung (Gast)


Lesenswert?

Peter II schrieb:
> aber saubersten geht das mit mysql-dump - der erzeugt eine große
> Textdatei die kannst du denn auf der andere Seite einspielen.

danke für den Tipp mit dem mysql-dump-programm, ich werde das gleich mal 
ausprobieren.

von und (Gast)


Lesenswert?

Ein Tool der Wahl waere phpMyAdmin, das kann einen export von 
irgendwas...

von Axel S. (a-za-z0-9)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.