Entsperren mit Mysqladmin Flush Hosts in MySQL
- Gründe für das Blockieren eines Hosts
- Umgang mit blockierten Hosts
-
Auswirkungen des Leerens der
host_cache
-Tabelle - Verschiedene Methoden zum Flushen von Hosts
- Fazit
In diesem Tutorial lernen wir die Gründe für das Blockieren eines Hosts kennen. Wir werden auch sehen, wie man mit mysqladmin flush-hosts;
in MySQL
die Blockierung aufhebt.
Dann finden wir die verschiedenen Methoden, um den host_cache
für eine erfolgreiche Verbindung zu leeren. Danach werden wir uns auch die Auswirkungen des Leerens der Tabelle host_cache
ansehen.
Gründe für das Blockieren eines Hosts
Jeder der folgenden Gründe kann dazu führen, dass Ihr Host (host_name
) blockiert wird.
- Ein Host,
host_name
, wird blockiert, wenn einer Ihrer Hosts dieIP
-Adresse geändert hat. - Host,
host_name
ist wegen vieler Verbindungsfehler blockiert. Dies bedeutet, dassmysqld
viele unterbrochene Verbindungsanfragen erhalten hat.
Umgang mit blockierten Hosts
Der host_cache
enthält den HOST
, IP
, SUM_CONNECT_ERRORS
des Clients und andere notwendige Details.
Host-Cache wird verwendet, um die Verbindungsfehler zu verfolgen. Der MySQL
-Server verwendet host_cache
, um die Fehler während des Client-Verbindungsprozesses zu verfolgen.
Angenommen, Sie erhalten beim Herstellen einer Verbindung den folgenden Fehler. Dann heisst es, mysqld
hat viele Verbindungsanfragen mittendrin unterbrochen bekommen.
Jetzt lässt es Sie nicht mehr verbinden.
Host 'host_name' is blocked because of many connection errors.
Unblock with mysqladmin flush-hosts
Die Systemvariable max_connect_errors
bestimmt die Anzahl der unterbrochenen Verbindungsanfragen.
Wenn die Anzahl der unterbrochenen Verbindungsanfragen die zulässigen überschreitet, wird Ihr Host blockiert. Und kann die weitere Verbindungsanforderung nicht senden, bis Sie die Tabelle hosts_cache
geleert haben.
Denn mysqld
geht davon aus, dass jemand versucht einzubrechen oder etwas schief läuft. In dieser Situation können Sie die Verbindungsanforderung nicht senden, bis Sie die Tabelle host-cache
gelöscht haben.
Sie können mysqladmin flush-hosts;
von einer Eingabeaufforderung/einem Terminal. Sie können auch die FLUSH HOSTS;
Anweisung in phpMyAdmin
.
Auswirkungen des Leerens der host_cache
-Tabelle
Sie können einen oder mehrere Effekte haben, wenn Sie den Host entsperren, indem Sie host_cache
leeren. Diese Effekte sind unten aufgeführt.
- In-Memory
host_cache
würde gelöscht. - Entsperrt den zuvor blockierten Host.
- Alle Zeilen aus
host_cache
würden entfernt.
Verschiedene Methoden zum Flushen von Hosts
Dies sind die verschiedenen Methoden, die Sie zum Leeren von Hosts verwenden können. Dazu müssen Sie die erforderlichen Berechtigungen bereitstellen.
- Durch die Bereitstellung des Privilegs
SUPER
können Sie den Wert der Systemvariablenhost_cache_size
ändern. - Wenn Sie das Privileg
DROP
vergeben, kürzen Sie die Tabellehost_cache
. Sie können dies tun, indem Sie die AnweisungTRUNCATE TABLE
verwenden. - Verwenden Sie
FLUSH HOSTS;
wenn SiephpMyAdmin
verwenden. Es benötigt die BerechtigungRELOAD
. - Indem Sie das Privileg
RELOAD
zuweisen, können Sie mitmysqladmin
Flush-Hosts inMySQL
entsperren. Führen Siemysqladmin flush-hosts;
aus Anweisung von der Eingabeaufforderung/dem Terminal. - Sie können auch
mysqladmin -u username -p password flush-hosts;
um die Tabellehost_cache
zu löschen. Ersetzen SieBenutzername
undPasswort
durch IhrenBenutzernamen
und IhrPasswort
.
Fazit
In Anbetracht der obigen Abschnitte sind wir zu dem Schluss gekommen, dass der Host blockiert wird, wenn Ihr Host die IP geändert hat. Oder Sie haben mehr Verbindungsfehler im Vergleich zur zulässigen Anzahl fehlgeschlagener Verbindungsanforderungen.
Sie können den Host entsperren, indem Sie Ihren host_cache
leeren, indem Sie mysqladmin flush-hosts
in MySQL und FLUSH HOSTS in phpMyAdmin
verwenden.