MySQL Datenbank per SSH Terminal exportieren
Mit mariadb-dump beziehungsweise mysqldump können Sie eine MariaDB- oder MySQL-Datenbank als SQL-Datei exportieren. Ein solcher Dump eignet sich für Migrationen und als zusätzlicher Bestandteil einer Backup-Strategie.
Inhaltsverzeichnis
Voraussetzungen
- SSH-Zugang zum Server
- Datenbankname und Datenbankbenutzer
- ausreichende Datenbankrechte, mindestens zum Lesen der zu sichernden Objekte
- genügend freier Speicherplatz für die Dump-Datei
Dump einer MariaDB-Datenbank erstellen
Setzen Sie zuerst restriktive Rechte für neu erstellte Dateien:
umask 077
Exportieren Sie anschließend die Datenbank. Das Passwort wird interaktiv abgefragt und erscheint nicht in der Befehlszeile:
mariadb-dump --user=DB_BENUTZER --password --single-transaction --quick --databases DB_NAME > DB_NAME.sql
Ersetzen Sie DB_BENUTZER, DB_NAME und den Dateinamen durch Ihre Werte.
Bei Oracle MySQL verwenden Sie entsprechend:
mysqldump --user=DB_BENUTZER --password --single-transaction --quick --databases DB_NAME > DB_NAME.sql
Dump prüfen
Prüfen Sie, ob die Datei vorhanden und nicht leer ist:
ls -lh DB_NAME.sql test -s DB_NAME.sql && echo "Dump-Datei ist nicht leer"
Führen Sie unmittelbar nach dem Dump echo $? aus. Nur 0 steht für einen ohne gemeldeten Fehler beendeten Befehl. Die zuverlässigste Prüfung ist ein Testimport in eine getrennte Testdatenbank.
Dump komprimieren
Mit gzip -k bleibt die unkomprimierte Datei erhalten:
gzip -k DB_NAME.sql
Danach existiert zusätzlich DB_NAME.sql.gz.
Wichtige Hinweise
- Schreiben Sie das Datenbankpasswort niemals direkt hinter
-poder--password=. Es kann sonst in Prozesslisten, Shell-Historie oder Protokollen erscheinen. --single-transactionerstellt für InnoDB-Tabellen einen konsistenten Stand ohne lange Tabellensperren. Für MyISAM- oder MEMORY-Tabellen gilt diese Garantie nicht.- Vermeiden Sie während des Dumps Änderungen an Tabellenstrukturen, beispielsweise
ALTER TABLE,DROP TABLEoderTRUNCATE TABLE. - Ein SQL-Dump sichert nicht automatisch externe Dateien, Konfigurationen, Benutzerrechte oder alle Servereinstellungen.
- Bewahren Sie Dumps nicht dauerhaft im öffentlich erreichbaren Dokumentenstamm einer Website auf.
Häufige Fehler
Access denied- Benutzername, Passwort oder Berechtigungen stimmen nicht. Prüfen Sie auch, ob der Benutzer nur von einem bestimmten Host zugreifen darf.
No space left on device- Prüfen Sie
df -hunddf -i. Löschen Sie nicht wahllos Systemdateien.
mariadb-dump: command not found- Auf MySQL-Systemen kann nur
mysqldumpvorhanden sein. Prüfen Sie zunächst die eingesetzte Datenbankdistribution.

