Migration einer MySQL Datenbank zu einem neuen Server
Aebian
Hallo,
Dieser Artikel soll euch einen schnellen Weg zeigen, wie Ihr eure MySQL Instance auf einen neuen Server verlagern koennt.
Was wird gebraucht?
MySQL Server auf dem neuen Host (mariadb-server-*)
MySQL Server auf dem alten Host (mariadb-server-*)
Access via shell (ssh oder direkt Konsole)
Zuerst wird auf den alten Host connected und dann der MySQL Server gestoppt. Dann der folgende Code ausgefuehrt:
mysqldump --all-databases --skip-extended-insert --order-by-primary -u root -p > oldserver.sql
Die Kommandozeile wird nach dem MySQL root Password fragen. Nach dem eingeben wird eine Datei erstellt mit Namen "oldserver.sql".
Wenn erledigt, dann kopiere die Datei zum neuen Host und logge dich in die datenbank ein via sudo mysql -u root -p und gib das Passwort ein.
Wenn dann erfolgreich verbunden, nutze das Kommando source um die SQL Datei in die Datei zu "sourcen". Dies importiert die Datenbank in die neue Instanz.
Beispiel: source /home/aebian/oldserver.sql
Achtung: Bitte sicherstellen das die Verbindung zum Server stabil ist, da bei großen Datenbanken der Import sehr lange dauern kann. Alternativ kann tmux verwendet werden um die Verbindung "ab zusichern".
Wenn dann der import erfolgt ist, ist die Datenbank erfolgreich auf dem neuen Host startklar.
Zusatz (by seegras
Datenbanken mit gzip komprimieren z.B. die Datenbank sehr groß ist.
mysqldump -uUSER -p mydatabase1 | gzip -c > my-mysql-dump.sql.gz
Auf dem Zielserver wird das Archiv dann entweder erst entpackt und dann importiert oder man macht das wieder mit ner Pipe
gzip -c my-mysql-dump.sql.gz | mysql -uUSER -p mydatabase1