How2-Tipps

MySQL-Datenbank auf einem Linux-Server exportieren und importieren

Lerne Schritt für Schritt, wie du MySQL- oder MariaDB-Datenbanken unter Linux über die Konsole sicherst und wiederherstellst – ideal für Backups, Migrationen und Tests.

1 min Lesezeit
MySQL-Datenbank auf einem Linux-Server exportieren und importieren

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

``bash mysqldump -u BENUTZERNAME -p DATENBANKNAME > backup.sql ``

Erklärung:

  • -u: Benutzername (z. B. root oder myuser)
  • -p: Passwort wird beim Ausführen abgefragt
  • > backup.sql: speichert die Ausgabe in die Datei backup.sql

Beispiel mit Host und Port:

``bash mysqldump -h 127.0.0.1 -P 3306 -u root -p mydatabase > mydatabase_backup.sql ``

GZIP-komprimiert speichern:

``bash 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:

``bash 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:

``bash gunzip < mydatabase_backup.sql.gz | mysql -u myuser -p mydatabase ``

Oder:

``bash 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:

``bash mysql -u root -p -e "CREATE DATABASE neue_datenbank CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" ``

Danach den Import ausführen:

``bash mysql -u root -p neue_datenbank < backup.sql ``

Tipp: Struktur und Daten getrennt exportieren

Für differenzierte Backups:

  • Nur Struktur (Schema):

``bash mysqldump -u myuser -p -d mydatabase > schema.sql ``

  • Nur Daten:

``bash mysqldump -u myuser -p --no-create-info mydatabase > daten.sql ``

Sicherheitshinweis

Verwende keine Klartext-Passwörter auf der Kommandozeile wie:

``bash 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)

```bash #!/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!