So beheben Sie den MySQL-Fehler: Zu viele Verbindungen

Einführung in den MySQL-Fehler: Zu viele Verbindungen

Wenn eine Webanwendung (Website, Blog, Forum usw.) stark nachgefragt wird, d. h. viele Nutzer sie besuchen, führt dies zu einem erhöhten Serverressourcenverbrauch. Nutzt diese Webanwendung eine MySQL-Datenbank und sind die Abfragen sehr zahlreich ( beispielsweise aufgrund mangelhafter Website-Programmierung oder einer hohen Nutzerzahl ), kann MySQL folgenden Fehler anzeigen:

mysqli_connect(): (HY000/1040): Too many connections

Was bedeutet der MySQL: Too Many Connections-Fehler?

Dies bedeutet, dass zu viele Anfragen an MySQL kommen, mehr als es akzeptieren kann, mehr als es in die Warteschlange stellen oder warten kann.

Wie man es löst?

Ganz einfach, wir müssen die maximale Anzahl von Anforderungen (Verbindungen) erhöhen, die MySQL unterstützt.

Ich werde Ihnen zwei Möglichkeiten geben, um dieses Problem zu beheben:

1. Wir bearbeiten die Datei /etc/mysql/my.cfg:

nano /etc/mysql/my.cfg

Darin setzen wir Folgendes unter [mysql]:

max_connections = 500 max_user_connections = 500

Dadurch wird die maximale Anzahl von Verbindungen von 100 (Standardeinstellung) auf 500 erhöht.

Wir speichern und beenden, starten den MySQL-Dienst neu und fertig. Diese Änderung ist dauerhaft.

2. Eine andere Möglichkeit, dieses Problem zu lösen, besteht darin, das Maximumlimit mithilfe einer MySQL-Abfrage zu ändern.

Zeigen wir zunächst die aktuelle Grenze:

mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'

Dies wird uns ungefähr so ​​zeigen:

+ ----------------- + ------- + | Variablenname | Wert | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

Mit anderen Worten, die aktuelle Grenze liegt bei 151 Verbindungen. Lassen Sie uns diese mithilfe einer Abfrage auf 500 erhöhen:

mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'

Bereit!

Das Problem auf diese Weise ist, dass diese Konfiguration beim Neustart des Dienstes verloren geht.

Um dieses Detail auszugleichen, können Sie ein Bash-Skript erstellen, das alle X-Zeiten überprüft, oder die Zeile sogar zum Start- oder Neustartblock des Daemons hinzufügen 

Aber warum möchte ich dann diese 2. Option wissen? … nun, das habe ich gesagt. Aber vor einem Monat hat ein Ubuntu-Server Methode Nr. 1 ignoriert, also ... in extremen Fällen eines dummen Betriebssystems haben wir diese zweite Option, die genauso gut funktioniert 


Als bevorzugte Quelle in Google hinzufügen