📑 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.

    Kostenlos testen