FLUSH [LOCAL | NO_WRITE_TO_BINLOG]flush_option
[,flush_option
] ...
Die FLUSH
-Anweisung leert verschiedene
interne Caches, die von MySQL verwendet werden, bzw. lädt
diese neu. Für die Ausführung von FLUSH
benötigen Sie die Berechtigung RELOAD
.
Die Anweisung RESET
ähnelt
FLUSH
. Siehe auch Abschnitt 13.5.5.5, „RESET
“.
flush_option
kann die folgenden
Werte annehmen:
HOSTS
Leert die Cache-Tabellen auf dem Host. Sie sollten die
Hosttabellen leeren, wenn einer Ihrer Hosts die IP-Nummer
wechselt oder Sie die Fehlermeldung Host
'
erhalten. Wenn aufeinander folgend mehr
als host_name
' is
blockedmax_connect_errors
Fehler für
einen gegebenen Host auftreten, während dieser eine
Verbindung mit dem MySQL Server herstellt, dann geht MySQL
davon aus, dass etwas nicht stimmt, und sperrt weitere
Verbindungsanfragen dieses Hosts. Das Synchronisieren der
Hosttabellen gestattet dem Host einen neuen Versuch der
Verbindungsherstellung. Siehe auch
Abschnitt A.2.5, „Host '...' is blocked
-Fehler“. Sie können
mysqld mit
--max_connect_errors=999999999
starten,
um diese Fehlermeldung zu verhindern.
DES_KEY_FILE
Lädt die DES-Schlüssel aus der mit der Option
--des-key-file
beim Serverstart
angegebenen Datei neu.
LOGS
Schließt alle Logdateien und öffnet sie neu. Wenn das
binäre Loggen aktiviert ist, wird die Sequenznummer der
Binärlogdatei relativ zur vorherigen Datei um den Wert 1
erhöht. Unter Unix ist dies das Gleiche wie das Senden
eines SIGHUP
-Signals an den
mysqld-Server. (Ausnahme sind einige
Versionen von Mac OS X 10.3, wo mysqld
SIGHUP
und SIGQUIT
ignoriert.)
Wenn der Server mit der Option
--log-error
gestartet wurde, bewirkt
FLUSH LOGS
, dass das Fehlerlog mit dem
Suffix -old
umbenannt wird und
mysqld eine neue leere Logdatei
erstellt. Wenn die Option --log-error
nicht angegeben wird, erfolgt keine Umbenennung.
PRIVILEGES
Lädt die Berechtigungen aus der Gesamtstruktur in der
mysql
-Datenbank neu.
QUERY CACHE
Defragmentiert den Abfrage-Cache, um seinen Speicher
besser zu nutzen. FLUSH QUERY CACHE
entfernt anders als RESET QUERY CACHE
keine Abfragen aus dem Cache.
STATUS
Setzt die meisten Statusvariablen auf null. Dies ist etwas, das Sie nur beim Debuggen einer Abfrage tun sollten. Siehe auch Abschnitt 1.8, „Wie man Bugs oder Probleme meldet“.
{TABLE | TABLES}
[
tbl_name
[,
tbl_name
] ...]
Wenn keine Tabellen benannt sind, werden alle Tabellen
geschlossen. Das Schließen aller gerade verwendeten
Tabellen wird ebenfalls erzwungen. Ferner wird der
Schlüssel-Cache synchronisiert. Werden ein oder mehrere
Tabellennamen angegeben, dann werden nur die angegebenen
Tabellen synchronisiert. FLUSH TABLES
entfernt ebenso wie RESET QUERY CACHE
zudem alle Abfrageergebnisse aus dem Abfrage-Cache.
TABLES WITH READ LOCK
Schließt alle offenen Tabellen und versieht alle Tabellen
für alle Datenbanken mit einer Lesesperre, bis Sie
UNLOCK TABLES
ausführen. Dies ist eine
recht praktische Möglichkeit der Datensicherung, wenn Sie
ein Dateisystem wie Veritas einsetzen, das rechtzeitig
Schnappschüsse erstellt.
USER_RESOURCES
Setzt alle Benutzerbeschränkungen auf Stundenbasis auf
null. Hierdurch können Clients, bei denen der Grenzwert
für Verbindungen, Abfragen oder Änderungen pro Stunde
erreicht wurde, ihre Aktivitäten direkt wiederaufnehmen.
FLUSH USER_RESOURCES
wirkt sich
allerdings nicht auf die Begrenzung gleichzeitiger
Verbindungen aus. Siehe auch Abschnitt 13.5.1.3, „GRANT
und REVOKE
“.
FLUSH
-Anweisungen werden in das Binärlog
geschrieben, sofern das optionale Schlüsselwort
NO_WRITE_TO_BINLOG
(oder sein Alias
LOCAL
) nicht verwendet wird. Dies wird
gemacht, damit FLUSH
-Anweisungen, die auf
einem MySQL Server verwendet werden, der als
Replikationsmaster agiert, standardmäßig auf den
Replikationsslave repliziert werden.
Hinweis: FLUSH
LOGS
, FLUSH MASTER
,
FLUSH SLAVE
und FLUSH TABLES WITH
READ LOCK
werden keinesfalls geloggt, weil dies bei
der Replikation auf einen Slave Probleme verursachen würde.
Sie können auf einige dieser Anweisungen auch mit dem
Hilfsprogramm mysqladmin zugreifen, indem
Sie die Befehle flush-hosts
,
flush-logs
,
flush-privileges
,
flush-status
oder
flush-tables
verwenden.
Hinweis: Es ist in MySQL
5.1 nicht möglich,
FLUSH
-Anweisungen in gespeicherten
Funktionen oder Triggern abzusetzen. Allerdings können Sie
FLUSH
in gespeicherten Prozeduren benutzen,
solange diese nicht aus gespeicherten Funktionen heraus oder
von Triggern aufgerufen werden. Siehe auch
Abschnitt I.1, „Beschränkungen bei gespeicherten Routinen und Triggern“.
Informationen dazu, wie die RESET
-Anweisung
bei der Replikation verwendet wird, finden Sie in
Abschnitt 13.5.5.5, „RESET
“.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.