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_nameist wegen vieler Verbindungsfehler blockiert. Dies bedeutet, dassmysqldviele 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_cachewürde gelöscht. - Entsperrt den zuvor blockierten Host.
- Alle Zeilen aus
host_cachewü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
SUPERkönnen Sie den Wert der Systemvariablenhost_cache_sizeändern. - Wenn Sie das Privileg
DROPvergeben, kürzen Sie die Tabellehost_cache. Sie können dies tun, indem Sie die AnweisungTRUNCATE TABLEverwenden. - Verwenden Sie
FLUSH HOSTS;wenn SiephpMyAdminverwenden. Es benötigt die BerechtigungRELOAD. - Indem Sie das Privileg
RELOADzuweisen, können Sie mitmysqladminFlush-Hosts inMySQLentsperren. 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_cachezu löschen. Ersetzen SieBenutzernameundPasswortdurch IhrenBenutzernamenund 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.
