Hi,
seit der Umstellung einer Website auf MySQL 8 haben wir ständig Datenbankverbindungsprobleme. Vorher hatten wir MySQL 5.7 und maximal 27 Verbindungen. Nun mit MySQL 8 sind es maximal 40 Verbindungen. Bei "Einstellungen -> Datenbank anzeigen" steht dann "User XYZ already has more than 'max_user_connections' active connections". Das ganze läuft bei IONOS.
Ich habe mal bei einem Account von Domainfactory geschaut bei dem ein SharedHosting gebucht ist und da sind es maximal 400 Verbindungen.
IONOS ist nicht gewillt irgendwas zu ändern.
Hat dazu jemand eine Idee?
Dirk
User XYZ already has more than 'max_user_connections' active connections
-
- Senior Member
- Beiträge: 3735
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: User XYZ already has more than 'max_user_connections' active connections
In welcher WE Version und bei welchem PHP stellst du das fest? Ist php als Apache Modul, oder per cgi (fpm) eingebunden?
Ist die mysqli-Extension mit dem mysqlnd-Treiber kompiliert, oder mit dem alten mysql-Treiber?
Die Grenze von 40 ist zwar nicht riesig, aber auch nicht extrem klein - hängt halt sehr vom Anspruch der parallelen Anfragen an den Webserver selbst ab. Jede aufgerufene dyn. Seite benötigt eine DB Verbindung, und dann nur noch, wenn LV's ineinander geschachtelt sind.
Am Ende des Requests sollte der Prozess beendet werden und dann auch alle DB-Verbindungen geschlossen werden. Seit WE 9.1.3.0 schließen wir die Connections explizit, obwohl das eigentlich nicht nötig sein sollte - es sei denn der Prozess wird eben nicht beendet, dann würden die Verbindungen aufrecht gehalten...
Ist die mysqli-Extension mit dem mysqlnd-Treiber kompiliert, oder mit dem alten mysql-Treiber?
Die Grenze von 40 ist zwar nicht riesig, aber auch nicht extrem klein - hängt halt sehr vom Anspruch der parallelen Anfragen an den Webserver selbst ab. Jede aufgerufene dyn. Seite benötigt eine DB Verbindung, und dann nur noch, wenn LV's ineinander geschachtelt sind.
Am Ende des Requests sollte der Prozess beendet werden und dann auch alle DB-Verbindungen geschlossen werden. Seit WE 9.1.3.0 schließen wir die Connections explizit, obwohl das eigentlich nicht nötig sein sollte - es sei denn der Prozess wird eben nicht beendet, dann würden die Verbindungen aufrecht gehalten...
webEdition-Kern-Entwickler
-
- Senior Member
- Beiträge: 3735
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: User XYZ already has more than 'max_user_connections' active connections
Hi,
- webEdition 9.1.3.0
- PHP 7.3.33 (laut phpinfo() -> Server API: CGI/FastCGI)
- MySQL 8.0.26
- native driver (mysqlnd) -> verfügbar
Wenn man in webEdition ist, dann passiert es oft, dass in den einzelnen Bereichen dann die Meldung
angezeigt wird.
Schaut dann so aus:
Dirk
- webEdition 9.1.3.0
- PHP 7.3.33 (laut phpinfo() -> Server API: CGI/FastCGI)
- MySQL 8.0.26
- native driver (mysqlnd) -> verfügbar
Wenn man in webEdition ist, dann passiert es oft, dass in den einzelnen Bereichen dann die Meldung
Code: Alles auswählen
mysqli_(p)connect(dbxyz.hosting-data.io, dbuxyz)
failed.Database error
Schaut dann so aus:
Dirk
Re: User XYZ already has more than 'max_user_connections' active connections
hmm. das sieht ja gar nicht gut aus...
Kann man bei 1&1 wählen, wie man php will? Also fpm oder so?
Ich kann hier auch nur raten, was sie tun. Falls sie wirklich fast-cgi nutzen und dann der PHP-Prozess nicht beendet wird (für schnelleres PHP), Wird vermutlich auch nicht die shutDown Funktion der DB Klasse getriggert und damit die DB Connection aufrecht gehalten. Beim nächsten Request wird dann evtl. eine andere CGI-Instanz geholt und eine weitere DB Connection erstellt.
Ist jetzt aber nur eine Idee, was die Jungs sich da ausgedacht haben... Sagt einem ja keiner - und der Support ist ja wie immer Ahnungslos...
Kann man bei 1&1 wählen, wie man php will? Also fpm oder so?
Ich kann hier auch nur raten, was sie tun. Falls sie wirklich fast-cgi nutzen und dann der PHP-Prozess nicht beendet wird (für schnelleres PHP), Wird vermutlich auch nicht die shutDown Funktion der DB Klasse getriggert und damit die DB Connection aufrecht gehalten. Beim nächsten Request wird dann evtl. eine andere CGI-Instanz geholt und eine weitere DB Connection erstellt.
Ist jetzt aber nur eine Idee, was die Jungs sich da ausgedacht haben... Sagt einem ja keiner - und der Support ist ja wie immer Ahnungslos...
webEdition-Kern-Entwickler
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast