- Veröffentlicht am
- • How2-Tipps
MySQL-Datenbank auf einem Linux-Server exportieren und importieren
- Autor
-
-
- Benutzer
- tmueller
- Beiträge dieses Autors
- Beiträge dieses Autors
-

Schritt-für-Schritt-Anleitung über die Konsole
Wer mit MySQL oder MariaDB unter Linux arbeitet, kommt früher oder später zu dem Punkt, an dem eine Datenbank gesichert (exportiert) oder wiederhergestellt (importiert) werden muss – sei es für ein Backup, einen Serverumzug oder für Testzwecke. In diesem Beitrag zeigen wir dir Schritt für Schritt, wie du das zuverlässig über die Konsole erledigst.
Was brauchst du?
- Zugriff auf den Server per SSH
- Installierte Datenbank (MySQL oder MariaDB)
- Benutzer mit Zugriffsrechten auf die gewünschte Datenbank
- Optional:
sudo
-Rechte für Systemdatenbank-Backups
Datenbank exportieren (Backup erstellen)
Befehl: mysqldump
Das Standard-Tool zum Exportieren einer MySQL-Datenbank ist mysqldump
.
Beispiel: Einfache Datenbanksicherung
mysqldump -u BENUTZERNAME -p DATENBANKNAME > backup.sql
Erklärung:
-u
: Benutzername (z. B.root
odermyuser
)-p
: Passwort wird beim Ausführen abgefragt> backup.sql
: speichert die Ausgabe in die Dateibackup.sql
Beispiel mit Host und Port:
mysqldump -h 127.0.0.1 -P 3306 -u root -p mydatabase > mydatabase_backup.sql
GZIP-komprimiert speichern:
mysqldump -u myuser -p mydatabase | gzip > mydatabase_backup.sql.gz
Datenbank importieren (Wiederherstellung)
Befehl: mysql
Mit dem folgenden Befehl importierst du eine .sql
-Datei in eine bestehende Datenbank:
mysql -u BENUTZERNAME -p DATENBANKNAME < backup.sql
Beachte:
- Die Datenbank muss vorher existieren.
- Achte auf Groß-/Kleinschreibung im Namen.
GZIP-Datei importieren:
Falls das Backup gezippt wurde, kannst du es direkt mit gunzip
oder zcat
entpacken und importieren:
gunzip < mydatabase_backup.sql.gz | mysql -u myuser -p mydatabase
Oder:
zcat mydatabase_backup.sql.gz | mysql -u myuser -p mydatabase
Datenbank erstellen (vor dem Import)
Falls die Ziel-Datenbank noch nicht existiert, kannst du sie so anlegen:
mysql -u root -p -e "CREATE DATABASE neue_datenbank CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
Danach den Import ausführen:
mysql -u root -p neue_datenbank < backup.sql
Tipp: Struktur und Daten getrennt exportieren
Für differenzierte Backups:
Nur Struktur (Schema):
mysqldump -u myuser -p -d mydatabase > schema.sql
Nur Daten:
mysqldump -u myuser -p --no-create-info mydatabase > daten.sql
Sicherheitshinweis
Verwende keine Klartext-Passwörter auf der Kommandozeile wie:
mysqldump -u root -pMeinGeheimesPasswort ...
Das Passwort wäre dann im Prozessspeicher sichtbar (ps aux
).
Fazit
Das Sichern und Wiederherstellen von MySQL-Datenbanken ist über die Konsole schnell und zuverlässig möglich. Ob für regelmäßige Backups, Migrationen oder Tests – mit den oben gezeigten Befehlen hast du die volle Kontrolle über deine Daten.
Tipp: Für automatische Sicherungen lohnt sich ein Bash-Skript mit Zeitstempel und Komprimierung.
Beispiel: Backup-Skript (täglich)
#!/bin/bash
DATUM=$(date +"%Y-%m-%d_%H-%M")
USER="myuser"
DB="mydatabase"
BACKUP_DIR="/home/user/backups"
mysqldump -u $USER -p $DB | gzip > "$BACKUP_DIR/$DB-$DATUM.sql.gz"
Einfach mit crontab -e
regelmäßig ausführen lassen!