Lösung von MySQL-Verbindungsproblemen Host ist wegen vieler Verbindungsfehler blockiert; entsperren Sie mit 'mysqladmin flush-hosts'"

Problembeschreibung

Das Testumgebungsprojekt lief normal und niemand bewegte es, aber es erschien unerklärlicherweise eine Ausnahme 502. Nach einer Untersuchung wurde festgestellt, dass die Anwendung beim Zugriff auf mysql den folgenden Fehler meldete:

com.mysql.cj.exceptions.CJException: null,  message from server: "Host '192.168.0.118' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"

Identifizieren Sie das Problem

Zunächst einmal ist der Datenbankzugriff mit Navicat normal, aber der Anwendungszugriff funktioniert nicht, selbst ein Neustart der mysql-Instanz hat keine Auswirkung.
Schließlich steht fest, dass die Anwendung der Testumgebung in kurzer Zeit generiert werden sollEine große Anzahl von unterbrochenen Datenbankverbindungen führen zu, und die Anzahl der fehlgeschlagenen VerbindungenMaximalwert von mysql's max_connection_errors überschritten

Problem gelöst

1. Melden Sie sich bei mysql an und verwenden Sie den Befehl flush hosts, um die Hosts-Datei zu bereinigen

mysql -uroot -p

Bildbeschreibung hier einfügen

flush hosts;

Bildbeschreibung hier einfügen

2. Passen Sie die Größe der maximalen Anzahl von Verbindungen und der maximalen Anzahl von Fehlerverbindungen von mysql an

Zeigen Sie die maximale Anzahl fehlerhafter Verbindungen in mysql an

show variables like '%max_connect_errors%'

Zeigen Sie die maximale Anzahl von MySQL-Verbindungen an:

show variables like 'max_connections';

Ändern Sie die Anzahl der Verbindungen

set global max_connections = 1000;
set global max_connect_errors = 1000;

Die beiden oben genannten Methoden können das Projekt vorübergehend normal laufen lassen, aber sie sollten das wesentliche Problem lösen:AnwendungEs werden zu viele MySQL-Verbindungen generiert und nicht geschlossen, was zu einer Blockierung führt

おすすめ

転載: blog.csdn.net/qq_29864051/article/details/130128693