
Ich arbeite gerade an einer PHP-Website auf dem dedizierten Server meines Kunden und erhalte regelmäßig eine Fehlermeldung, too many connections
aber ungefähr 5 Benutzer durchsuchen diese Seite.
In phpMyAdmin
kann ich sehen, dass die max connections
Variable auf eingestellt ist 400
.
Auf unserem lokalen MySQL-Server in meinem Unternehmen haben wir max connections
eingerichtet 200
und andere Kollegen nutzen gleichzeitig diesen Server.
Ich habe gehört, dass auf ihrem Server eine andere Website mit großem Datenverkehr dasselbe MySQL verwendet.
Hier sind meine Fragen:
- Wie lässt sich dieses Problem beheben?
- Kann ich mir die Liste der in den letzten 10 Minuten ausgeführten SQL-Abfragen ansehen, um zu prüfen, ob es unser oder ihr Problem ist?
Antwort1
Die von Ihnen beschriebenen Symptome deuten auf dauerhafte Verbindungen hin. In einigen Konfigurationen kann PHP mit dauerhaften Verbindungen nicht sehr gut umgehen: Es neigt dazu, neue Verbindungen zu öffnen, anstatt die vorhandenen wiederzuverwenden. Ich schlage vor, Sie deaktivieren diese Funktion und prüfen, ob das Problem weiterhin besteht:
- Auf Codeebene: Suchen Sie nach Aufrufen vonmysql_pconnect()und ersetzen Sie sie durchmysql_connect().
- Auf Konfigurationsebene: Suchen Sie diemysql.allow_persistent-Direktive und setzen Sie sie auf „false“.
Wenn Sie eine Verbesserung bemerken, können Sie versuchen, die hartnäckigen Anrufe zu optimieren oder sie dauerhaft zu beseitigen.