TL;DR #
Der Fehler MyDumper: Directory is not empty (use –clear, –dirty or –merge) tritt auf, wenn ein Backup in ein bereits vorhandenes Verzeichnis geschrieben werden soll. MyDumper verweigert das, um Datenüberschreibungen zu verhindern.
Schnelle Lösungen:
- Neues leeres Verzeichnis angeben (
--outputdir /pfad/zu/backup_neu
) - Mit
--clear
vorhandenes Verzeichnis automatisch leeren lassen - Mit
--merge
oder--dirty
bestehende Daten einbeziehen (nur in speziellen Fällen empfohlen)
Was bedeutet der Fehler? #
MyDumper legt Backups von MySQL/MariaDB-Datenbanken ab. Standardmäßig erwartet es ein leeres Zielverzeichnis für jedes Backup.
Wenn dort bereits Dateien liegen, bricht MyDumper ab und zeigt:
Directory is not empty (use --clear, --dirty or --merge)
Das schützt dich davor, alte und neue Backups versehentlich zu vermischen.
Ursachen & Lösungen #
1. Backup-Verzeichnis ist nicht leer #
- Wahrscheinlich liegt noch ein altes Backup darin.
- Lösung: Entweder manuell leeren oder neues Verzeichnis angeben:
mydumper --outputdir /backups/backup_2025_09_09
2. --clear
nutzen (empfohlen für Skripte) #
- MyDumper löscht den Ordnerinhalt vor dem Schreiben automatisch:
mydumper --outputdir /backups/daily --clear
3. --merge
verwenden (nur bei inkrementellen Backups sinnvoll) #
- Kombiniert neue Dumps mit bestehenden Dateien.
- Achtung: Funktioniert nur, wenn bewusst gewollt.
4. --dirty
nutzen (nicht empfohlen) #
- Erzwingt die Nutzung des Ordners trotz Inhalt.
- Risiko: unvollständige oder unbrauchbare Backups.
Quick Fixes #
- Neues Verzeichnis angeben →
--outputdir /backups/neuer_ordner
- Automatisches Leeren →
--clear
- Bestehende Dumps kombinieren →
--merge
(nur Spezialfälle) - Niemals unbedacht
--dirty
verwenden
Fazit #
Der Fehler Directory is not empty bei MyDumper ist eigentlich ein Sicherheitsmechanismus. In den meisten Fällen reicht es, ein neues Verzeichnis zu nutzen oder den Ordner mit --clear
automatisch zu leeren.
So stellst du sicher, dass deine Backups konsistent und zuverlässig bleiben.