MySQL Datenbank sichern — So gehts
Eine MySQL-Datenbank zu sichern ist keine Raketenwissenschaft — aber es gibt mehr Möglichkeiten als die meisten denken. Je nach Situation, Datenbankgröße und Hosting-Umgebung eignet sich die eine Methode besser als die andere. Hier der Überblick über die fünf gängigsten Verfahren mit klarer Empfehlung, wann du was nutzen solltest.
Methode 1: mysqldump (Kommandozeile)
mysqldump ist das Bordmittel von MySQL und das Werkzeug, das jeder Datenbank-Admin kennen sollte — im mysqldump-Tutorial findest du alle Optionen im Detail. Es erzeugt eine SQL-Datei mit allen Befehlen, die nötig sind, um die Datenbank komplett neu aufzubauen.
Grundbefehl
mysqldump -u benutzername -p datenbankname > backup.sql
Mit Komprimierung
mysqldump -u benutzername -p datenbankname | gzip > backup.sql.gz
Vorteile
- Auf jedem System mit MySQL/MariaDB vorinstalliert
- Extrem flexibel (einzelne Tabellen, Strukturen, Daten)
- Ausgabe ist reines SQL — universell importierbar
- Lässt sich leicht in Cronjobs einbinden
- Funktioniert mit Datenbanken jeder Größe
Nachteile
- Braucht SSH-Zugang oder Shell-Zugriff
- Bei sehr großen Datenbanken (50+ GB) langsam
- Kein grafisches Interface
- Lock-Probleme bei InnoDB ohne
--single-transaction
Empfohlen für
Admins mit Shell-Zugang, automatisierte Backups, Produktionsserver. Wenn du die Wahl hast, nimm mysqldump — es ist der Standard aus gutem Grund.
Methode 2: phpMyAdmin
phpMyAdmin ist die Weboberfläche, die bei fast jedem Hosting-Paket dabei ist. Für kleine Datenbanken reicht es völlig.
So gehts
- phpMyAdmin im Browser öffnen
- Datenbank in der linken Spalte auswählen
- Tab „Exportieren“ klicken
- Methode „Schnell“ oder „Angepasst“ wählen
- Format „SQL“ beibehalten
- „OK“ klicken — Download startet
Vorteile
- Grafische Oberfläche, kein Terminal nötig
- Bei fast jedem Hoster vorinstalliert
- Export-Optionen gut konfigurierbar
- Auch Import/Restore direkt möglich
Nachteile
- PHP-Timeout bei großen Datenbanken — ab ca. 50 MB wird es problematisch
- Upload-Limit beim Import (oft 2 MB oder 8 MB Standard)
- Nicht automatisierbar
- Manueller Prozess — vergisst man leicht
Empfohlen für
Kleine Datenbanken (unter 50 MB), einmalige Exporte, schnelle Ad-hoc-Backups. Nicht für regelmäßige, automatisierte Sicherungen.
Methode 3: MySQLDumper
MySQLDumper wurde genau für das Problem entwickelt, an dem phpMyAdmin scheitert: große Datenbanken auf Shared Hosting sichern, ohne Timeout. Besonders bei WordPress-Datenbanken ist das ein häufiges Thema.
So funktioniert es
MySQLDumper teilt den Export in kleine Häppchen auf. Nach jedem Chunk ruft es sich selbst per HTTP-Redirect wieder auf — und umgeht so das PHP-Zeitlimit. Clever.
Vorteile
- Kein SSH nötig — läuft komplett im Browser oder per Perl-Cronjob
- Kein Timeout-Problem, egal wie groß die Datenbank
- GZip-Komprimierung eingebaut
- Automatisierung per Cronjob möglich
- Restore ebenfalls chunked — kein Upload-Limit-Problem
- E-Mail-Benachrichtigung nach Backup
Nachteile
- Muss installiert werden (eigenes PHP-Tool auf dem Webspace)
- Sicherheitsrisiko wenn nicht richtig abgesichert
- Entwicklung nicht mehr aktiv (aber funktioniert weiterhin)
Empfohlen für
Shared Hosting mit großen Datenbanken, WordPress/Joomla-Seiten, User ohne SSH-Zugang. Installationsanleitung hier.
Methode 4: AutoMySQLBackup
AutoMySQLBackup ist ein Bash-Script, das automatische tägliche, wöchentliche und monatliche Backups erstellt. Quasi das „Set it and forget it“-Tool für Linux-Server.
Installation
# Debian/Ubuntu
sudo apt install automysqlbackup
# Konfiguration anpassen
sudo nano /etc/default/automysqlbackup
Wichtige Einstellungen
# Welche Datenbanken sichern (leer = alle)
DBNAMES=""
# Backup-Verzeichnis
BACKUPDIR="/var/lib/automysqlbackup"
# Rotation
DAILY_RETENTION=7
WEEKLY_RETENTION=4
MONTHLY_RETENTION=12
Vorteile
- Einmal einrichten, dann läufts
- Automatische Rotation (täglich/wöchentlich/monatlich)
- Komprimierung mit GZip
- Sichert alle Datenbanken auf einmal
- E-Mail-Benachrichtigung bei Fehlern
Nachteile
- Braucht Root-Zugang
- Nur für Linux-Server
- Keine Weboberfläche
- Kein Offsite-Backup eingebaut
Empfohlen für
Linux-Server mit mehreren Datenbanken, wo du ein einfaches Rotationssystem brauchst.
Methode 5: Manuelle Kopie (Dateibasiert)
Im Notfall kannst du auch direkt die Datenbankdateien kopieren. Das ist die schnellste Methode — aber auch die riskanteste.
So gehts
# MySQL stoppen (WICHTIG!)
sudo systemctl stop mysql
# Datenbankverzeichnis kopieren
sudo cp -r /var/lib/mysql/meine_datenbank /backup/meine_datenbank
# MySQL wieder starten
sudo systemctl start mysql
Vorteile
- Extrem schnell, auch bei riesigen Datenbanken
- Keine SQL-Konvertierung nötig
Nachteile
- MySQL muss gestoppt werden — Downtime!
- Nicht portabel (anderer Server, andere MySQL-Version = Problem)
- InnoDB-Tabellen sind nicht einfach kopierbar (tablespace-Probleme)
- Keine Komprimierung
- Fehleranfällig wenn MySQL während der Kopie läuft
Empfohlen für
Absolute Notfälle, Server-Migration bei gleicher MySQL-Version, MyISAM-Tabellen. Im Alltag besser mysqldump nutzen.
Vergleichstabelle
| Kriterium | mysqldump | phpMyAdmin | MySQLDumper | AutoMySQLBackup | Dateikopie |
|---|---|---|---|---|---|
| SSH nötig | Ja | Nein | Nein | Ja | Ja |
| Max. DB-Größe | Unbegrenzt | ~50 MB | Unbegrenzt | Unbegrenzt | Unbegrenzt |
| Automatisierbar | Ja | Nein | Ja | Ja | Bedingt |
| Weboberfläche | Nein | Ja | Ja | Nein | Nein |
| Downtime nötig | Nein* | Nein | Nein | Nein* | Ja |
| Komprimierung | Per Pipe | Optional | Eingebaut | Eingebaut | Nein |
| Schwierigkeit | Mittel | Leicht | Leicht | Leicht | Riskant |
* Mit --single-transaction bei InnoDB kein Lock nötig
Meine Empfehlung
Für die meisten Situationen gibt es eine klare Rangfolge:
- mysqldump + Cronjob — wenn du SSH hast, nimm das. Zuverlässig, flexibel, Industriestandard. Wie du automatische Backups per Cronjob einrichtest, zeige ich dir im separaten Guide.
- MySQLDumper — wenn du kein SSH hast (Shared Hosting). Löst das Timeout-Problem elegant.
- AutoMySQLBackup — wenn du viele Datenbanken auf einem Server hast und die Rotation nicht selbst scripten willst.
- phpMyAdmin — für schnelle Einmal-Exports. Nicht für regelmäßige Backups.
- Dateikopie — nur im Notfall oder bei Migration.
Unabhängig von der Methode: Speichere dein Backup nicht nur auf demselben Server. Ein Brand, ein Hardwaredefekt, ein Ransomware-Angriff — und sowohl Datenbank als auch Backup sind weg. Kopiere deine Backups regelmäßig auf einen externen Speicher.