Große MySQL-Datenbanken zwischen Servern kopieren

Um große MySQL-Datenbanken  schnell und ohne Probleme von einem alten Linux-Server auf einen neuen Linux-Server kopieren zu können, empfielt es sich auf sämtlich Tools (wie MySQLDumper, phpMyAdmin) zu verzichten und das Ganze per MySQL und SSH zu bewerkstelligen.

Dazu führt man in der Konsole auf dem alten Server, auf dem sich die zu kopierende Datenbank („testdb“) befindet, folgenden Befehl aus:

mysqldump -u root -p testdb > testdb.sql

Dieser Befehl erstellt ein Dump der Datenbank („testdb“). Es wird vorher noch das Passwort des Benutzers „root“ abgefragt, ist dieses erfolgreich, startet das Backup. Standardmäßig wird nun im Root des Server die Datei „testdb.sql“ erzeugt.

Wurde das Backup erstellt, kopiert man die Backupdatei per SSH auf den neuen Server. Dieses erfolgt durch folgenden Befehl (auszuführen auf dem alten Server):

scp testdb.sql root@neuerserver.com:/

Nun wird das SSH-Passwort für den Benutzer „root“ des neuen Servers abgefragt. Wurde dieser erfolgreich eingegeben, beginnt das Kopieren!

Nun loggt man sich auf den neuen Server per SSH ein und gibt in der Konsole folgenden Befehl ein um das Backup auf dem neuen Server wieder herzustellen:

mysql -u root -ppassword testdb < testdb.sql

Nun wurde die Datenbank „tesddb“ erfolgreich aus dem Backup wieder hergestellt.

Sollte es noch nötig sein ein komplettes Verzeichnis mit mehreren MB oder GB an Dateien auf den neuen Server zu kopieren, dann könnte der Befehl so aussehen:

scp -r /var/www/project/pictures/ root@neuerserver.com:/var/www/project/

3 Kommentare zu “Große MySQL-Datenbanken zwischen Servern kopieren

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *