open-how2 – Entdecke. Verstehe. Nutze.
Veröffentlicht am
How2-Tipps

MySQL-Datenbank auf einem Linux-Server exportieren und importieren

Autor
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

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:

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!