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
Kommentare 2
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
seegras
Ist die Klammer beim Export nicht falsch herum?
Als kleinen Zusatz könnte man die Datenbank beim Export noch direkt komprimieren was bei großen Datenbanken durchaus nützlich sein kann
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
Aebian Autor
Danke, habs oben ergaenzt.