Sparen Sie 15% bei allen Hosting-Diensten

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code: Skills Anfangen
Abschnitte
Linux Verwaltung Virtuelle Server

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, TRIGGER für Exporte; CREATE, INSERT, ALTER fü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.sql

Ersetzen Sie die Platzhalter wie folgt:

PlatzhalterBeschreibung
usernameIhr MySQL-Benutzername (z. B. root oder ein dedizierter DB-Benutzer)
database_nameDer Name der Datenbank, die Sie exportieren möchten
export_file.sqlDer 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.sql

Nü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.sql

Methode 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.sql

Ersetzen Sie die Platzhalter:

PlatzhalterBeschreibung
usernameIhr MySQL-Benutzername
database_nameDie Zieldatenbank zum Importieren
import_file.sqlDer Pfad zu Ihrer .sql-Datei

Beispiel:

mysql -u root -p my_wordpress_db < /home/backups/wordpress_backup_2024.sql

Importieren einer komprimierten Datei:

gunzip < export_file.sql.gz | mysql -u root -p database_name

Schritt 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.gz

Dies 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 mariadb

Fehler 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 = 512M

Nach dem Speichern starten Sie Ihren Webserver neu:

sudo systemctl restart apache2
# or
sudo systemctl restart nginx

Alternativ 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
DNS Domainnamen Verwaltung
Sicherungskopie Verwaltung
Betriebssysteme Linux Virtuelle Server