MySQL Datenbank per SSH Terminal exportieren: Unterschied zwischen den Versionen
(Datenbankexport für aktuelle MariaDB/MySQL-Clients sicher aktualisiert) |
(Artikel passenden Kundenkategorien zugeordnet) |
||
| Zeile 61: | Zeile 61: | ||
[[Category:VServer und Root Server]] | [[Category:VServer und Root Server]] | ||
| + | |||
| + | [[Category:Datenbanken und phpMyAdmin]] | ||
| + | |||
| + | [[Category:Backups und Wiederherstellung]] | ||
Aktuelle Version vom 20. September 2026, 12:16 Uhr
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.

