Datenbank-Migration (MySQL / MariaDB)

Diese Anleitung erklärt, wie Sie MySQL- und MariaDB-Datenbanken mit mysqldump sicher exportieren und auf einem neuen Server importieren — einzelne Datenbanken oder alle auf einmal.

Voraussetzungen: SSH-Zugriff auf beide Server. MySQL oder MariaDB muss auf dem Zielserver installiert und konfiguriert sein. Die MySQL-Version des Zielservers sollte gleich oder höher sein als die des Quellservers.

Schritt 1: Datenbank-Benutzer und Berechtigungen notieren

Vor dem Export alle Datenbanken und Benutzer auflisten.

Führen Sie dies auf dem Quellserver aus, um einen Überblick zu erhalten:

Terminal
mysql -u root -p -e "SHOW DATABASES;" mysql -u root -p -e "SELECT user, host FROM mysql.user;"

Schritt 2: Datenbanken exportieren

Alle Datenbanken oder einzelne per mysqldump exportieren.

Alle Datenbanken auf einmal exportieren

Exportiert alle Datenbanken inklusive Benutzerrechten in eine einzige Datei:

Terminal
mysqldump -u root -p --all-databases --single-transaction --routines --triggers > /root/alle-datenbanken.sql

Einzelne Datenbank exportieren

Exportiert eine bestimmte Datenbank — ersetzen Sie datenbankname entsprechend:

Terminal
mysqldump -u root -p --single-transaction --routines --triggers datenbankname > /root/datenbankname.sql
FlagBedeutung
--single-transactionExportiert konsistent ohne Tabellen zu sperren — wichtig bei laufenden Anwendungen
--routinesExportiert gespeicherte Prozeduren und Funktionen
--triggersExportiert Trigger

Schritt 3: Export-Datei auf den Zielserver übertragen

Die SQL-Datei per scp sicher auf den Zielserver kopieren.

Führen Sie dies auf dem Quellserver aus — ersetzen Sie die IP und den Dateipfad:

Terminal
scp /root/alle-datenbanken.sql root@ZIELSERVER_IP:/root/

Schritt 4: Datenbanken auf dem Zielserver importieren

Die exportierte SQL-Datei auf dem Zielserver einspielen.

Führen Sie dies auf dem Zielserver aus:

Terminal
mysql -u root -p < /root/alle-datenbanken.sql

Bei einer einzelnen Datenbank müssen Sie diese zuerst anlegen und dann importieren:

Terminal
mysql -u root -p -e "CREATE DATABASE datenbankname;" mysql -u root -p datenbankname < /root/datenbankname.sql

Schritt 5: Import prüfen

Sicherstellen, dass alle Datenbanken und Tabellen korrekt übertragen wurden.
Terminal
mysql -u root -p -e "SHOW DATABASES;" mysql -u root -p datenbankname -e "SHOW TABLES;"

Prüfen Sie außerdem, ob die Anwendungen auf dem Zielserver korrekt auf die Datenbanken zugreifen können, bevor Sie DNS-Einträge umstellen.

Weiterführende Dokumentation

Alle mysqldump-Optionen finden Sie in der offiziellen MySQL-Dokumentation.