MySQL/MariaDB-Fehler „Zu viele Verbindungen“ beheben
Der MySQL-Error „Zu viele Verbindungen“ tritt auf, wenn an eine MySQL-Datenbank mehr Anfragen gestellt werden, als verarbeitet werden können. Beheben lässt sich der Fehler, indem eine neue Anzahl maximaler Verbindungen entweder in der Konfigurationsdatei oder global eingestellt wird.
Wie entsteht der MySQL-Fehler „Zu viele Verbindungen“?
Eine Datenbank kann nur eine beschränkte Anzahl an Anfragen gleichzeitig verarbeiten. Wird dieser Maximalwert überschritten, zeigt MySQL Ihnen die obige Fehlermeldung an. Dies ist beispielsweise der Fall, wenn ein PHP-Skript zu viele gleichzeitige Verbindungen zu der relationalen Datenbank aufbauen möchte. Auch, wenn Sie eine Webanwendung haben, die eine MySQL-Datenbank verwendet, ist es möglich, dass bei sehr starker Nachfrage der MySQL-Error „Zu viele Verbindungen“ auftritt.
- Daten zentral speichern, teilen und bearbeiten
- Serverstandort Deutschland (ISO 27001-zertifiziert)
- Höchste Datensicherheit im Einklang mit der DSGVO
Eine neue maximale Anzahl von Verbindungen auswählen
Die Systemvariable max_connections bestimmt die Anzahl der Verbindungen, die MySQL/MariaDB akzeptiert. Der Standardwert ist 151 Verbindungen, was 150 normale Verbindungen plus eine Verbindung aus dem SUPER-Konto ermöglicht. SUPER ist ein MySQL-Privileg, das dem User Adminrechte zuteilt.
Als erstes muss entschieden werden, welchen neuen Maximalwert Sie für max_connections einstellen möchten. Es gibt mehrere Überlegungen, die bei der Erhöhung der Anzahl der MySQL/MariaDB-Verbindungen zu berücksichtigen sind. Die maximale Anzahl, die vom System unterstützt werden kann, hängt von folgenden Faktoren ab:
- Die Menge des verfügbaren Arbeitsspeichers (RAM)
- Wie viel RAM jede Verbindung benötigt (einfache Abfragen benötigen weniger RAM als arbeitsintensivere Verbindungen)
- Die akzeptable Reaktionszeit
Laut der MySQL-Dokumentation sollten die meisten Linux-Systeme 500 bis 1.000 Verbindungen problemlos unterstützen können.
Ändern von max_connections
Die Variable max_connections kann an zwei Stellen geändert werden:
Aktualisieren Sie die my.cnf-Datei, so dass der neue Wert verwendet wird, wenn der MySQL/MariaDB-Server neu gestartet wird.
Verwenden Sie den Befehl SET GLOBAL, um den Wert auf dem laufenden MySQL/MariaDB-Server zu aktualisieren. In diesem Fall ist kein Neustart von MySQL/MariaDB nötig, sodass Sie keine Ausfallzeiten Ihrer Datenbank einkalkulieren müssen.
Bei MySQL die Anzahl der Verbindungen anzeigen lassen
Um die aktuelle Anzahl der max_connections zu sehen, melden Sie sich mit dem folgenden Befehl im MySQL/MariaDB-Kommandozeilen-Client an:
mysql -u root -p
Verwenden Sie anschließend den Befehl:
SHOW variables;
Es wird eine Liste aller Variablen ausgegeben, die für MySQL/MariaDB gesetzt sind. Blättern Sie durch die Liste nach oben, um den Wert für max_connections zu finden.
Updaten Sie die Datei my.cnf
Öffnen Sie die Datei /etc/my.cnf zur Bearbeitung mit dem Befehl:
sudo nano /etc/my.cnf
Direkt unter der ersten Zeile sehen Sie folgenden Eintrag:
[mysqld]
Füge Sie einen neuen Eintrag hinzu:
max_connections=[desired new maximum number]
Um beispielsweise max_connections auf 200 zu setzen, sollten die ersten beiden Zeilen Ihrer Konfigurationsdatei wie folgt aussehen:
[mysqld]
max_connections=200
Speichern und beenden Sie die Datei.
Anzahl an Verbindungen global einstellen
Sie können die maximale Anzahl an Verbindungen für Ihre Datenbank auch global einstellen. Melden Sie sich zunächst mit dem Befehl am MySQL/MariaDB-Befehlszeilen-Client an:
mysql -u root -p
Setzen Sie den neuen Wert max_connections mit dem folgenden Befehl auf einen Wert Ihrer Wahl:
SET GLOBAL max_connections=[desired new maximum number];
Um beispielsweise max_connections auf 200 zu setzen, lautet der Befehl:
SET GLOBAL max_connections=200;
Beenden Sie anschließend MySQL/MariaDB mit dem Befehl:
quit;
- In Sekunden zur professionellen WordPress Website mit KI-Tools
- Jetzt bis zu 3x schneller dank SSD, Caching & optimierter Plattform
- Tägliche Sicherheits-Scans, DDoS-Schutz und 99,98 % Verfügbarkeit