📑 Inhaltsverzeichnis
Ob Online-Shop, mobile App, Mitgliedersystem oder Blog — die wertvollsten Daten Ihrer Website (Benutzerpasswörter, Bestellungen, Einstellungen und Inhalte) liegen in der MySQL-Datenbank. Verlieren Sie Ihre Dateien, können Sie den Code neu schreiben; der Verlust der Datenbank verursacht dagegen materiellen und immateriellen Schaden, der sich nicht wiedergutmachen lässt. In diesem Beitrag haben wir die besten Sicherheitseinstellungen und Backup-Strategien für Ihre MySQL-Datenbank zusammengestellt.
1. MySQL-Datenbanksicherheit (Härtungsmaßnahmen)
Ihre Datenbank gegen Angriffe von außen zu schützen ist ebenso wichtig wie sie zu sichern. Setzen Sie diese grundlegenden Schritte um, um Eindringversuche zu verhindern:
Externen Zugriff schließen (Bind Address)
Ein nach außen offener MySQL-Server ist eine große Sicherheitslücke. Um nur Verbindungen von localhost (serverintern) zuzulassen, prüfen Sie die bind-address-Einstellung in Ihrer Datei my.cnf oder mysqld.cnf :
bind-address = 127.0.0.1
Mit dieser Einstellung werden direkte Verbindungsversuche von außerhalb des Servers blockiert.
Fernzugriff für den Root-Benutzer verhindern
Der MySQL-Root-Benutzer hat volle Rechte und ist ein beliebtes Ziel von Brute-Force-Angriffen. Stellen Sie sicher, dass Root sich nur vom Server selbst verbinden kann:
ALTER USER 'root'@'%' IDENTIFIED BY 'CokGucluSifre123!'; -- Nur für Zugriff von localhost: RENAME USER 'root'@'%' TO 'root'@'localhost';
🚨 Ransomware und Datenlecks
In den letzten Jahren durchsuchen automatisierte Bots offene MySQL-Ports (3306) mit schwachen Passwörtern, verschlüsseln die Daten und fordern Lösegeld. Starke Passwörter und die Beschränkung auf lokalen Zugriff senken dieses Risiko erheblich.
2. Die sicherste mysqldump-Backup-Methode
Der gängigste Weg, MySQL-Datenbanken zu sichern, ist der Befehl mysqldump . Bei großen Datenbanken braucht es jedoch die richtigen Parameter, damit die Tabellen während des Backups nicht gesperrt werden:
mysqldump --single-transaction --quick --lock-tables=false -u benutzername -p datenbankname > sicherung.sql
--single-transaction: ermöglicht das Backup ohne Tabellensperre. Während Ihre Website aktiv ist, stocken die Vorgänge nicht.--quick: schreibt die Daten direkt in die Datei und verhindert so übermäßigen Speicherverbrauch bei großen Datenbanken.
3. Was ist ein inkrementelles MySQL-Backup?
Ist Ihre Datenbank 5 GB oder größer, belastet ein tägliches Vollbackup von Grund auf sowohl die Server-CPU als auch rasch den Speicherplatz.
Ein inkrementelles Backup sichert nur die seit dem letzten Backup geänderten oder neu hinzugekommenen Zeilen. Umgesetzt über die Binary-Log -Technologie von MySQL spart dieses Verfahren erheblich an Speicherplatz und Servertraffic.
4. Sichere, automatische MySQL-Backups mit Yedekalma
Backups von Hand zu erstellen und zu verwahren ist mühsam und fehleranfällig. Yedekalma sichert Ihre MySQL-Datenbank automatisch und sicher von Ihrem eigenen Server:
- Optionale AES-256-Verschlüsselung: Wenn Sie sie aktivieren, wird Ihr SQL-Datenbank-Backup auf dem Server Ihrer Website mit einem Passwort verschlüsselt, das nur Sie kennen, und gelangt verschlüsselt in Ihren Speicher; wir speichern das Passwort nicht und können das Backup auch nicht öffnen.
- 8-stufige Prüfung: Bei jedem Backup werden Abdeckung, Vollständigkeit des Datenbank-Dumps, Integrität und das Vorhandensein am Ziel automatisch geprüft; zusätzlich lädt ein wöchentlicher Stichproben-Wiederherstellungstest ausgewählte Archive auf Ihren Server und prüft, ob sie sich öffnen lassen.
Häufig gestellte Fragen
Wie sichert man eine MySQL-Datenbank?
Am gängigsten ist der Befehl mysqldump: `mysqldump -u benutzer -p datenbank > backup.sql`. Schreiben Sie das Passwort nicht in die Befehlszeile (es erscheint in der Prozessliste); nutzen Sie stattdessen ~/.my.cnf oder --defaults-extra-file. Für kleine Datenbanken genügt auch der Export-Reiter in phpMyAdmin, bei großen Tabellen droht jedoch ein PHP-Timeout.
Wie oft sollte ein MySQL-Backup erstellt werden?
Der Maßstab ist die Datenmenge, deren Verlust Sie hinnehmen können (RPO). Bei einer statischen Präsentationsseite genügt womöglich ein wöchentliches Backup; bei täglich neuen Inhalten ein tägliches; bei einem Shop mit Bestellungen ein stündliches — denn dort bedeutet eine verlorene Stunde unmittelbar verlorene Bestellungen.
Lässt sich ein inkrementelles Backup für die Datenbank nutzen?
Auf Tabellenebene, nicht auf Zeilenebene: mysqldump erzeugt bei jedem Lauf die ausgewählten Tabellen vollständig, und ein halber Dump lässt sich nicht wiederherstellen. Im PHP-Backup-Modul von Yedekalma ist der inkrementelle Modus optional: Bei Dateien zählt der Änderungszeitpunkt, bei E-Mails die IMAP-UID; in der Datenbank werden nach einem Voll-Backup nur die Tabellen neu exportiert, deren Prüfsumme auf Tabellenebene (CHECKSUM) sich geändert hat. Diese Exporte beziehen sich immer auf das letzte Voll-Backup (differenziell); manuell gestartete Backups sind immer vollständig, und das Voll-Backup wird regelmäßig erneuert. Im WordPress-Plugin und im Chunk-Modus sehr großer Websites ist die Datenbank nicht inkrementell: Bei jedem Lauf wird ein vollständiger Dump erstellt. Echte inkrementelle Datenbank-Wiederherstellung erfolgt über binlog-basiertes PITR und ist ein eigenes Thema.
Muss ich mein Datenbank-Passwort mit dem Backup-Dienst teilen?
Nein. Bei Yedekalma erstellt das auf Ihrem eigenen Server laufende PHP-Modul den Dump; MySQL-Benutzername und -Passwort bleiben in der Konfigurationsdatei auf Ihrem Server und werden nie an einen Yedekalma-Server gesendet. Das Panel sieht nur die Metadaten des Backups (Größe, Datum, Prüfsumme).
Überlassen Sie Ihre Datenbanksicherheit nicht dem Zufall
Erstellen Sie mit Yedekalma in fünf Minuten Ihren MySQL-Backup-Plan und speichern Sie Ihre Daten automatisch in Ihrem eigenen Cloud-Speicher, optional verschlüsselt.
Verwandte Seiten: Datenbank-Backup · inkrementelles Backup · verschlüsseltes Backup
Kostenlos testen