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.
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.
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.
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.
Entfernt alle Abfrageergebnisse aus dem Abfrage-Cache (falls aktiviert):
Hinweis: Der Abfrage-Cache ist veraltet und wurde in MySQL 8.0 entfernt.
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
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
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.
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 TABLES
auf ;
Lädt die DES-Schlüsseldateien, die in den alten DES_ENCRYPT()/DES_DECRYPT() (Legacy) verwendet wurden, erneut.
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.
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.
Die meisten FLUSH-Operationen erfordern:
RELOAD-Berechtigung
SUPER oder SYSTEM_VARIABLES_ADMIN (für sensible Operationen in MySQL 8 )
Beispiel:
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.