Importieren und Exportieren von MySQL-Datenbanken: Ein vollständiger Leitfaden
Effiziente Datenbankverwaltung ist das Rückgrat jeder zuverlässigen Webanwendung. Egal ob Sie routinemäßige Sicherungen durchführen, Daten zwischen Servern migrieren oder eine neue Umgebung einrichten – das Wissen, wie man MySQL-Datenbanken importiert und exportiert, ist eine unverzichtbare Fähigkeit für jeden Entwickler und Systemadministrator.
Dieser umfassende Leitfaden führt Sie durch jede Methode, jeden Befehl und jeden Troubleshooting-Schritt, den Sie benötigen, um MySQL-Datenbanken sicher zu verwalten – von der Befehlszeile bis zu phpMyAdmin.
Warum MySQL-Import- und Exportvorgänge wichtig sind
MySQL-Datenbankexporte und -importe dienen mehreren kritischen Zwecken:
- Sicherung und Notfallwiederherstellung – schützen Sie Ihre Daten vor versehentlichem Löschen oder Serverausfällen
- Servermigration – verschieben Sie Datenbanken zwischen Hosting-Umgebungen ohne Datenverlust
- Entwicklung und Staging – klonen Sie Produktionsdatenbanken zu Testzwecken
- Versionskontrolle – erstellen Sie einen Snapshot Ihres Datenbankzustands vor größeren Anwendungsaktualisierungen
Damit diese Vorgänge reibungslos ablaufen, ist Ihre Hosting-Infrastruktur entscheidend. Eine VPS-Hosting-Umgebung mit NVMe-Speicher, vollständigem Root-Zugriff und hohem I/O-Durchsatz stellt sicher, dass selbst große Datenbankdumps schnell und zuverlässig abgeschlossen werden.
1. Voraussetzungen: Was Sie vor dem Start benötigen
Bevor Sie mit Exporten oder Importen beginnen, bestätigen Sie, dass Sie Folgendes haben:
- MySQL-Serverzugriff mit ausreichenden Benutzerberechtigungen (
SELECT,LOCK TABLES,SHOW VIEW,TRIGGERfür Exporte;CREATE,INSERT,ALTERfür Importe) - MySQL-Client installiert auf Ihrem lokalen Computer oder Server
- Ein Terminal oder SSH-Client für Befehlszeilenoperationen
- phpMyAdmin (optional), wenn Sie eine grafische Benutzeroberfläche bevorzugen
- Ausreichend Speicherplatz für die
.sql-Dump-Datei, besonders bei großen Datenbanken
> Profi-Tipp: Wenn Sie mehrere Datenbanken über Projekte hinweg verwalten, erwägen Sie einen VPS mit cPanel für ein optimiertes, GUI-basiertes Datenbankverwaltungserlebnis.
2. Exportieren einer MySQL-Datenbank
Das Exportieren einer MySQL-Datenbank generiert eine .sql-Datei, die das vollständige Datenbankschema (Struktur) und Daten enthält. Diese Datei kann später verwendet werden, um Ihre Datenbank wiederherzustellen oder zu migrieren.
Methode 1: Verwendung der MySQL-Befehlszeile (mysqldump)
Das mysqldump-Dienstprogramm ist das zuverlässigste und am weitesten verbreitete Tool zum Exportieren von MySQL-Datenbanken. Es funktioniert direkt vom Terminal aus und unterstützt eine breite Palette von Optionen.
Schritt 1: Öffnen Sie Ihr Terminal
Verbinden Sie sich über SSH mit Ihrem Server oder öffnen Sie eine lokale Terminalsitzung.
Schritt 2: Führen Sie den mysqldump-Befehl aus
mysqldump -u username -p database_name > export_file.sqlErsetzen Sie die Platzhalter wie folgt:
| Platzhalter | Beschreibung |
|---|---|
username | Ihr MySQL-Benutzername (z. B. root oder ein dedizierter DB-Benutzer) |
database_name | Der Name der Datenbank, die Sie exportieren möchten |
export_file.sql | Der gewünschte Name und Pfad für die Ausgabedatei |
Schritt 3: Geben Sie Ihr MySQL-Passwort ein
Sie werden aufgefordert, Ihr Passwort einzugeben. Der Export wird unmittelbar nach der Authentifizierung fortgesetzt.
Beispiel:
mysqldump -u root -p my_wordpress_db > /home/backups/wordpress_backup_2024.sqlNützliche mysqldump-Flags:
# Export all databases
mysqldump -u root -p --all-databases > all_databases.sql
# Export only the database structure (no data)
mysqldump -u root -p --no-data database_name > structure_only.sql
# Compress the output on the fly
mysqldump -u root -p database_name | gzip > export_file.sql.gz
# Export specific tables only
mysqldump -u root -p database_name table1 table2 > partial_export.sqlMethode 2: Exportieren über phpMyAdmin
phpMyAdmin bietet eine benutzerfreundliche grafische Benutzeroberfläche für Datenbankexporte, ideal für diejenigen, die die Befehlszeile nicht verwenden möchten.
Schritt 1: Melden Sie sich bei phpMyAdmin an
Öffnen Sie Ihren Browser und navigieren Sie zu Ihrer phpMyAdmin-Installation (z. B. https://yourdomain.com/phpmyadmin).
Schritt 2: Wählen Sie Ihre Datenbank
Klicken Sie in der linken Seitenleiste auf die Datenbank, die Sie exportieren möchten.
Schritt 3: Navigieren Sie zur Registerkarte „Export”
Klicken Sie auf die Registerkarte Export im oberen Navigationsmenü.
Schritt 4: Wählen Sie Ihre Exportmethode
- Schnell – exportiert die gesamte Datenbank mit Standardeinstellungen. Geeignet für die meisten Anwendungsfälle.
- Benutzerdefiniert – ermöglicht es Ihnen, bestimmte Tabellen, Ausgabeformat, Komprimierung und zusätzliche Optionen auszuwählen.
Schritt 5: Wählen Sie das SQL-Format
Stellen Sie sicher, dass das Format auf SQL eingestellt ist (Standard). Sie können auch CSV, XML oder andere Formate je nach Bedarf wählen.
Schritt 6: Klicken Sie auf „Ausführen”
phpMyAdmin generiert und lädt die .sql-Datei auf Ihren lokalen Computer herunter.
3. Importieren einer MySQL-Datenbank
Das Importieren einer .sql-Datei stellt eine zuvor exportierte Datenbank auf einem MySQL-Server wieder her. Dies ist die Standardmethode für Migrationen, Wiederherstellungen und Bereitstellungen.
Methode 1: Verwendung der MySQL-Befehlszeile
Schritt 1: Stellen Sie sicher, dass die Zieldatenbank existiert
Vor dem Importieren muss die Zieldatenbank bereits existieren. Wenn nicht, erstellen Sie sie:
mysql -u root -p -e "CREATE DATABASE new_database_name;"Schritt 2: Führen Sie den Importbefehl aus
mysql -u username -p database_name < import_file.sqlErsetzen Sie die Platzhalter:
| Platzhalter | Beschreibung |
|---|---|
username | Ihr MySQL-Benutzername |
database_name | Die Zieldatenbank zum Importieren |
import_file.sql | Der Pfad zu Ihrer .sql-Datei |
Beispiel:
mysql -u root -p my_wordpress_db < /home/backups/wordpress_backup_2024.sqlImportieren einer komprimierten Datei:
gunzip < export_file.sql.gz | mysql -u root -p database_nameSchritt 3: Überprüfen Sie den Import
Nach Abschluss des Befehls melden Sie sich bei MySQL an und überprüfen Sie die Daten:
mysql -u root -p
USE database_name;
SHOW TABLES;Methode 2: Importieren über phpMyAdmin
Schritt 1: Melden Sie sich bei phpMyAdmin an
Öffnen Sie phpMyAdmin in Ihrem Browser.
Schritt 2: Wählen Sie oder erstellen Sie die Zieldatenbank
- Wenn die Datenbank bereits existiert, klicken Sie in der linken Seitenleiste darauf.
- Wenn nicht, klicken Sie auf Datenbanken im oberen Menü, geben Sie einen neuen Datenbanknamen ein und klicken Sie auf Erstellen.
Schritt 3: Navigieren Sie zur Registerkarte „Importieren”
Klicken Sie auf die Registerkarte Importieren im oberen Navigationsmenü.
Schritt 4: Wählen Sie Ihre Datei
Klicken Sie auf Datei wählen und wählen Sie die .sql-Datei von Ihrem lokalen Computer.
Schritt 5: Konfigurieren Sie die Importeinstellungen
- Zeichensatz: Stellen Sie sicher, dass er Ihrer Datenbankcodierung entspricht (normalerweise
utf8mb4) - Teilimport: Nützlich zum Fortsetzen unterbrochener Importe
- Format: Sollte automatisch auf SQL eingestellt sein
Schritt 6: Klicken Sie auf „Ausführen”
phpMyAdmin beginnt den Importprozess. Warten Sie auf die grüne Erfolgsmeldung, bevor Sie die Registerkarte schließen.
> Hinweis: phpMyAdmin hat ein Standard-Datei-Upload-Größenlimit (normalerweise 2MB–128MB). Verwenden Sie für größere Datenbanken die Befehlszeilenmethode oder passen Sie die PHP-Einstellungen wie im Abschnitt Troubleshooting unten beschrieben an.
4. Fortgeschrittene Export- und Importtechniken
Automatisieren von MySQL-Sicherungen mit Cron-Jobs
Für Produktionsumgebungen reichen manuelle Exporte nicht aus. Automatisieren Sie Ihre Datenbanksicherungen mit einem Cron-Job:
# Open the crontab editor
crontab -e
# Add this line to run a daily backup at 2:00 AM
0 2 * * * mysqldump -u root -pYourPassword database_name | gzip > /backups/db_$(date +%F).sql.gzDies stellt sicher, dass Sie immer eine aktuelle Sicherung haben, ohne manuelle Eingriffe.
Migrieren von Datenbanken zwischen Servern
Um eine Datenbank direkt von einem Server zu einem anderen zu migrieren, ohne eine Zwischendatei zu erstellen:
mysqldump -u root -p database_name | ssh user@remote_server "mysql -u root -p remote_database"Dies leitet die Dump-Ausgabe direkt über SSH in die Remote-MySQL-Instanz – effizient und schnell in einer Hochband-VPS-Hosting-Umgebung.
Umgang mit großen Datenbanken
Für Datenbanken, die mehrere Gigabyte überschreiten, erwägen Sie diese Optimierungen:
# Use single-transaction for InnoDB tables (avoids table locks)
mysqldump --single-transaction -u root -p database_name > export.sql
# Disable foreign key checks during import for speed
mysql -u root -p database_name -e "SET foreign_key_checks = 0;"
mysql -u root -p database_name < import_file.sql
mysql -u root -p database_name -e "SET foreign_key_checks = 1;"5. Behebung häufiger MySQL-Import-/Exportfehler
Fehler 1049: Unbekannte Datenbank
ERROR 1049 (42000): Unknown database 'database_name'Ursache: Die Zieldatenbank existiert nicht.
Lösung: Erstellen Sie die Datenbank vor dem Importieren:
mysql -u root -p -e "CREATE DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"Fehler 2002: Kann keine Verbindung zum MySQL-Server herstellen
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'Ursache: Der MySQL-Dienst wird nicht ausgeführt oder der Socket-Pfad ist falsch.
Lösung: Überprüfen und starten Sie den MySQL-Dienst neu:
# Check MySQL status
sudo systemctl status mysql
# Start MySQL if it's stopped
sudo systemctl start mysql
# For MariaDB
sudo systemctl start mariadbFehler 1044: Zugriff verweigert
ERROR 1044 (42000): Access denied for user 'username'@'localhost' to database 'database_name'Ursache: Der MySQL-Benutzer hat nicht ausreichende Berechtigungen.
Lösung: Gewähren Sie die erforderlichen Berechtigungen:
mysql -u root -p
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
FLUSH PRIVILEGES;phpMyAdmin-Dateigrößenlimit überschritten
Ursache: Die .sql-Datei überschreitet das Upload-Limit von phpMyAdmin.
Lösung: Bearbeiten Sie Ihre PHP-Konfigurationsdatei (php.ini):
upload_max_filesize = 256M
post_max_size = 256M
max_execution_time = 600
memory_limit = 512MNach dem Speichern starten Sie Ihren Webserver neu:
sudo systemctl restart apache2
# or
sudo systemctl restart nginxAlternativ können Sie zur Befehlszeilenimportmethode wechseln, die keine Dateigrößenbeschränkungen hat.
Import stoppt in der Mitte (Timeout)
Ursache: Große Importe überschreiten PHP- oder MySQL-Timeout-Limits.
Lösung: Verwenden Sie die Befehlszeile für große Dateien oder erhöhen Sie das MySQL-Timeout:
SET GLOBAL wait_timeout = 28800;
SET GLOBAL interactive_timeout = 28800;6. Sicherheitsbest Practices für MySQL-Exporte und -Importe
Der Schutz Ihrer Datenbankdumps ist genauso wichtig wie deren Erstellung. Befolgen Sie diese Best Practices:
- Verschlüsseln Sie sensible Dumps – verwenden Sie GPG, um exportierte Dateien vor dem Speichern oder Übertragen zu verschlüsseln:
gpg --symmetric --cipher-algo AES256 export_file.sql- Beschränken Sie Dateiberechtigungen – stellen Sie sicher, dass Dump-Dateien nicht weltweit lesbar sind:
chmod 600 export_file.sql- Verwenden Sie ded
bei allen Hosting-Diensten