MySQL Datenbank per SSH Terminal exportieren: Unterschied zwischen den Versionen

Aus HOSTING-STATION55 - Webhosting Wiki / FAQ
Zur Navigation springen Zur Suche springen
(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.

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 -p oder --password=. Es kann sonst in Prozesslisten, Shell-Historie oder Protokollen erscheinen.
  • --single-transaction erstellt 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 TABLE oder TRUNCATE 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 -h und df -i. Löschen Sie nicht wahllos Systemdateien.
mariadb-dump: command not found
Auf MySQL-Systemen kann nur mysqldump vorhanden sein. Prüfen Sie zunächst die eingesetzte Datenbankdistribution.