MySQL FLUSH-Befehle
In der Welt des Hostings ist MySQL nach wie vor eine der wichtigsten Komponenten für den Betrieb von dynamischen Websites, E-Commerce-Shops, Content-Management-Systemen (CMS) und SaaS-Plattformen. Ganz gleich, ob Sie einen Shared-Hosting-Cluster, eine VPS-Infrastruktur oder dedizierte Server für Unternehmenskunden verwalten, die Kontrolle über die internen Abläufe von MySQL ist unerlässlich.
Ein oft übersehenes, aber mächtiges Werkzeug ist der FLUSH-Befehl – eine Sammlung administrativer SQL-Anweisungen, mit denen Sie Berechtigungen neu laden, Protokolle löschen, Zustände zurücksetzen und Konsistenz sicherstellen können, ohne den Server neu zu starten.
Was ist FLUSH in MySQL?
Die FLUSH-Anweisung wird verwendet, um:
Interne Caches zu löschen
Konfigurationsdateien (wie Berechtigungstabellen) neu zu laden
Statusinformationen zurückzusetzen
MySQL zu zwingen, gepufferte Daten auf die Festplatte zu schreiben
Nur Benutzer mit dem RELOAD-Recht (oder höher, wie SUPER) können die meisten FLUSH-Operationen ausführen.
Allgemeine FLUSH-Befehle
1. 🔐 PRIVILEGIEN FLUSHEN
Lädt Benutzerprivilegien aus den Berechtigungstabellen in der mysql-Datenbank zurück:
Wann zu benutzen:
Nach dem manuellen Bearbeiten von mysql.user oder anderen Berechtigungstabellen.
Wenn Sie den Benutzerzugriff über direkte UPDATE-Anweisungen anstelle von GRANT ändern.
2. TABELLEN FLUSHEN
Schließt alle geöffneten Tabellen und zwingt sie, neu geöffnet zu werden. Nützlich bei der Wartung des Dateisystems oder bei Backups.
Sie können auch bestimmte Tabellen flushen:
Wann zu benutzen:
Vor der Durchführung von Backups mit externen Tools (z.B. mysqldump –single-transaction).
Nach umfangreichen Schreibvorgängen, die den Tabellen-Cache überlasten können.
3. ABFRAGE-CACHE LEEREN
Entfernt alle Abfrageergebnisse aus dem Abfrage-Cache (falls aktiviert):
Hinweis: Der Abfrage-Cache ist veraltet und wurde in MySQL 8.0 entfernt.
4. LOGS FLUSHEN
Schließt und öffnet alle Protokolldateien (allgemeines Protokoll, Fehlerprotokoll, binäres Protokoll, Relaisprotokoll).
Oder flush einen bestimmten Typ:
FLUSH BINARY LOGS;
FLUSH ERROR LOGS;
FLUSH ENGINE LOGS;
FLUSH SLOW LOGS;Wann zu verwenden:
Nach der Protokollrotation
Wenn Protokolle verschoben oder archiviert werden
Zum Zurücksetzen von Protokollen für Debugging oder Compliance
5. HOSTS FLUSHEN
Setzt den Host-Cache für fehlgeschlagene Client-Verbindungen zurück.
Wann zu verwenden:
Wenn Sie die Fehlermeldung erhalten:
Host 'xxx' is blocked because of many connection errors
6. STATUS FLUSHEN
Setzt die meisten Statusvariablen auf Null zurück (hat keine Auswirkungen auf globale Zähler wie Uptime).
Wann zu verwenden:
Vor einem Benchmarking oder Leistungstest.
Um saubere Metriken mit SHOW STATUSzu erhalten.
7. FLUSH TABLES WITH READ LOCK
Flusht und sperrt alle Tabellen und verhindert Schreibzugriffe von anderen Sitzungen.
Wann zu verwenden:
Für konsistente Snapshot-Backups (z.B. mit LVM oder Dateikopierwerkzeugen).
Wichtig: Heben Sie die Sperre immer manuell mit
UNLOCK TABLESauf;
8. FLUSH DES_KEY_FILE
Lädt die DES-Schlüsseldateien, die in den alten DES_ENCRYPT()/DES_DECRYPT() (Legacy) verwendet wurden, erneut.
9. FLUSH USER_RESOURCES
Setzt die Zähler für die Ressourcenbeschränkungen pro Benutzer (wie MAX_QUERIES_PER_HOUR) zurück.
Wann zu verwenden:
Zurücksetzen in der Mitte des Zyklus für ressourcenbeschränkte Benutzer.
Veraltete/entfernte Befehle
FLUSH QUERY CACHE wurde in MySQL 8.0 entfernt.
FLUSH DES_KEY_FILE ist veraltet.
Ziehen Sie neuere Alternativen in MySQL 8.0 wie RESET PERSIST in Betracht.
Erforderliche Berechtigungen
Die meisten FLUSH-Operationen erfordern:
RELOAD-Berechtigung
SUPER oder SYSTEM_VARIABLES_ADMIN (für sensible Operationen in MySQL 8 )
Beispiel:
Schlussfolgerung
Die FLUSH-Befehlsfamilie ist für die administrative Kontrolle in MySQL unerlässlich. Ganz gleich, ob Sie Privilegien, Protokolle oder Cache-Zustände verwalten – wenn Sie wissen, wie und wann Sie FLUSH verwenden, können Sie eine optimale Serverleistung und -zuverlässigkeit aufrechterhalten, ohne einen Neustart durchführen zu müssen. Verwenden Sie den Befehl mit Bedacht und den richtigen Berechtigungen, insbesondere in Produktionsumgebungen.


