SQLSTATE[HY000] [1203] User 123 already has more than max_user_connections

Hallo liebes Forum,

ich habe eine private Instanz von Nextcloud bei Webgo laufen.
Doch seit dem Upgrade auf die Version 23.x bekomme ich Fehlermeldungen.
Entweder bei Bilder in einen anderen Ordner kopieren, oder in der Ansicht der Bilder.

Laut Webgo liegt der max_user_connection bei 10
Über Hinweise und Tipps würde ich mich freuen

Der Logfileauszug:

[20-Jun-2022 09:01:09 Europe/Berlin] PHP Fatal error:  Uncaught Doctrine\DBAL\Exception: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [1203] User 123 already has more than 'max_user_connections' active connections in /home/www/nextcloud/lib/private/DB/Connection.php:87
Stack trace:
#0 /home/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1519): OC\DB\Connection->connect()
#1 /home/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1041): Doctrine\DBAL\Connection->getWrappedConnection()
#2 /home/www/nextcloud/lib/private/DB/Connection.php(237): Doctrine\DBAL\Connection->executeQuery('SELECT * FROM `...', Array, Array, NULL)
#3 /home/www/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php(345): OC\DB\Connection->executeQuery('SELECT * FROM `...', Array, Array)
#4 /home/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php(287): Doctrine\DBAL\Query\QueryBuilder->execute()
#5 /home/www/nextcloud/lib/private/AppConfig.php(361): OC\DB\QueryBuilder\QueryBuilder->execute()
#6 /home/www/nextcloud/lib/private/AppConfig.php(126): OC\AppConfig->loadConfigValues()
#7 /home/www/nextcloud/lib/private/AppConfig.php(317): OC\AppConfig->getApps()
#8 /home/www/nextcloud/lib/private/legacy/OC_App.php(982): OC\AppConfig->getValues(false, 'installed_versi...')
#9 /home/www/nextcloud/lib/private/Server.php(692): OC_App::getAppVersions()
#10 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(160): OC\Server->OC\{closure}(Object(OC\Server))
#11 /home/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(Pimple\Container))
#12 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(127): Pimple\Container->offsetGet('OC\\Memcache\\Fac...')
#13 /home/www/nextcloud/lib/private/ServerContainer.php(136): OC\AppFramework\Utility\SimpleContainer->query('OC\\Memcache\\Fac...', false)
#14 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(56): OC\ServerContainer->query('OC\\Memcache\\Fac...')
#15 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(182): OC\AppFramework\Utility\SimpleContainer->get('OC\\Memcache\\Fac...')
#16 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(160): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(OC\Server))
#17 /home/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(114): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(Pimple\Container))
#18 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(127): Pimple\Container->offsetGet('OCP\\ICacheFacto...')
#19 /home/www/nextcloud/lib/private/ServerContainer.php(136): OC\AppFramework\Utility\SimpleContainer->query('OCP\\ICacheFacto...', false)
#20 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(87): OC\ServerContainer->query('OCP\\ICacheFacto...', true)
#21 [internal function]: OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(ReflectionParameter))
#22 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(106): array_map(Object(Closure), Array)
#23 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(114): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass))
#24 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(131): OC\AppFramework\Utility\SimpleContainer->resolve('OC\\User\\Manager')
#25 /home/www/nextcloud/lib/private/ServerContainer.php(161): OC\AppFramework\Utility\SimpleContainer->query('OC\\User\\Manager', true)
#26 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(56): OC\ServerContainer->query('OC\\User\\Manager')
#27 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(182): OC\AppFramework\Utility\SimpleContainer->get('OC\\User\\Manager')
#28 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(160): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(OC\Server))
#29 /home/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(114): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(Pimple\Container))
#30 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(127): Pimple\Container->offsetGet('OCP\\IUserManage...')
#31 /home/www/nextcloud/lib/private/ServerContainer.php(136): OC\AppFramework\Utility\SimpleContainer->query('OCP\\IUserManage...', false)
#32 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(56): OC\ServerContainer->query('OCP\\IUserManage...')
#33 /home/www/nextcloud/lib/private/Server.php(521): OC\AppFramework\Utility\SimpleContainer->get('OCP\\IUserManage...')
#34 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(160): OC\Server->OC\{closure}(Object(OC\Server))
#35 /home/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(Pimple\Container))
#36 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(127): Pimple\Container->offsetGet('OC\\User\\Session')
#37 /home/www/nextcloud/lib/private/ServerContainer.php(136): OC\AppFramework\Utility\SimpleContainer->query('OC\\User\\Session', false)
#38 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(56): OC\ServerContainer->query('OC\\User\\Session')
#39 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(182): OC\AppFramework\Utility\SimpleContainer->get('OC\\User\\Session')
#40 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(160): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(OC\Server))
#41 /home/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(114): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(Pimple\Container))
#42 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(127): Pimple\Container->offsetGet('OCP\\IUserSessio...')
#43 /home/www/nextcloud/lib/private/ServerContainer.php(136): OC\AppFramework\Utility\SimpleContainer->query('OCP\\IUserSessio...', false)
#44 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(56): OC\ServerContainer->query('OCP\\IUserSessio...')
#45 /home/www/nextcloud/lib/private/Server.php(1354): OC\AppFramework\Utility\SimpleContainer->get('OCP\\IUserSessio...')
#46 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(160): OC\Server->OC\{closure}(Object(OC\Server))
#47 /home/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(114): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(Pimple\Container))
#48 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(127): Pimple\Container->offsetGet('OCP\\ISession')
#49 /home/www/nextcloud/lib/private/ServerContainer.php(136): OC\AppFramework\Utility\SimpleContainer->query('OCP\\ISession', false)
#50 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(56): OC\ServerContainer->query('OCP\\ISession')
#51 /home/www/nextcloud/lib/private/Server.php(1237): OC\AppFramework\Utility\SimpleContainer->get('OCP\\ISession')
#52 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(160): OC\Server->OC\{closure}(Object(OC\Server))
#53 /home/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(Pimple\Container))
#54 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(127): Pimple\Container->offsetGet('OC\\Security\\CSR...')
#55 /home/www/nextcloud/lib/private/ServerContainer.php(136): OC\AppFramework\Utility\SimpleContainer->query('OC\\Security\\CSR...', false)
#56 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(87): OC\ServerContainer->query('OC\\Security\\CSR...', true)
#57 [internal function]: OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(ReflectionParameter))
#58 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(106): array_map(Object(Closure), Array)
#59 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(114): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass))
#60 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(131): OC\AppFramework\Utility\SimpleContainer->resolve('OC\\Security\\CSR...')
#61 /home/www/nextcloud/lib/private/ServerContainer.php(161): OC\AppFramework\Utility\SimpleContainer->query('OC\\Security\\CSR...', true)
#62 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(56): OC\ServerContainer->query('OC\\Security\\CSR...')
#63 /home/www/nextcloud/lib/private/Server.php(1036): OC\AppFramework\Utility\SimpleContainer->get('OC\\Security\\CSR...')
#64 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(160): OC\Server->OC\{closure}(Object(OC\Server))
#65 /home/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(Pimple\Container))
#66 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(127): Pimple\Container->offsetGet('OCP\\IRequest')
#67 /home/www/nextcloud/lib/private/ServerContainer.php(136): OC\AppFramework\Utility\SimpleContainer->query('OCP\\IRequest', false)
#68 /home/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(56): OC\ServerContainer->query('OCP\\IRequest')
#69 /home/www/nextcloud/lib/private/Server.php(1520): OC\AppFramework\Utility\SimpleContainer->get('OCP\\IRequest')
#70 /home/www/nextcloud/remote.php(52): OC\Server->getRequest()
#71 /home/www/nextcloud/remote.php(168): handleException(Object(Doctrine\DBAL\Exception))
#72 {main}
  thrown in /home/www/nextcloud/lib/private/DB/Connection.php on line 87
  • Bei welchen Anbieter: Webgo
  • Was für ein Server? shared hosting
    Linux 4.19.0-18-amd64 x86_64
  • Nextcloud Version: 23.0.5

PHP Version: 8.0.17
Arbeitspeicher-Grenzwert: 512 MB
Maximale Ausführungszeit: 3600
Maximale Größe zum Hochladen: 150 MB

Art: mysql
Version: 8.0.22
Größe: 69,9 MB

  • Bei was für einer Aktion ist der Fehler aufgetreten?
    Klick auf Fotos (rund 5.000) nach unten scrollen
    10 Bilder von einem Ordner in einen anderen kopieren

Ich den Fehler habe in meiner privaten Instanz ursprünglich auch gehabt. Aktuzell habe ich

max_connections = 250

Ich kann aber nicht sagen ob das empirisch als gangbares Minimum oder auf gut Glück gesetzt wurde… Eine Suche im Forum kann dir helfen Hintergründe dazu zu finden…

Hi @wwe und vielen Dank für die Rückmeldung.
max_connections - ist das für PHP oder MySQL?

Denn die Connections für die MySQL kann man nicht so ohne weiteres nach oben setzen?!

das ist eine Option von mysql

warum nicht?

…/dev-nextcloud$ cat db-config/my.cnf |grep max_connections
max_connections = 250

Danke :slight_smile:

Bei Webgo kannst du jedoch nur die php.ini und Apache configs ändern, nicht aber die MySQL.

Ich frage mich aber, wie ein Nutzer 10 MySQL Connections braucht…

@Mitches Ich bin auch bei webgo und hab genau dasselbe Problem. Ich hatte generell erst das Problem, dass mein Server allgemein Performance-Probleme hatte und als ich mich beschwert hab, haben sie festgestellt, dass v.a. andere User die DB-Verbindung zu stark auslasten und haben dann max_connections auf 10 gesetzt und jetzt hab ich das Problem auch. Mir ist auch nicht klar, wo diese 10 Verbindungen herkommen.
Wie ist bei Dir der aktuelle Stand? Hast Du das Problem gelöst bekommen, oder umgehen können? Wenn ja, wie? So wie’s jetzt gerade ist, kann ich das auf Dauer nicht lassen. Ich hab bei jedem 3. Zugriff auf meine Cloud Verbindungsprobleme, das ist so nicht nutzbar.

@maccarib
Nein, ich konnte das Problem nicht lösen - ich lade die Seite (da nur Privatgebrauch) entsprechend oft - irgendwann sind alle Bilder da

@wwe

Das geschilderte Problem tritt nicht in der App auf. Die arbeitet wunderbar und dort lassen sich 800 Bilder von einem in den anderen Ordner kopieren. Über die Weboberfläche geht das gerade noch mit 8 Bildern. Es liegt meiner Meinung nach an Nextcloud, die MySQL nicht so zu torpedieren. Hat ja mit einer anderen Version von Nextcloud schon funktioniert und klappt auch in der App…

@Mitches Das liegt nicht primär an den Bildern in meinen Augen. Die Stelle hab ich noch gar nicht angefasst. Ich bekomm die Fehlermeldungen relativ kontextunabhängig über verschiedene Wege, oft einfach auch nur, wenn ich die Seite oder meinen Kalender öffne. Auch ein cronjob läuft sehr zuverlässig in das Problem. Ich glaub, da gehen insgesamt ein paar Sachen nicht vernünftig mit den connections um.

Inzwischen haben wir Februar 24 und das Problem ist nun bei mir auch aufgeschlagen.
Neuerdings (ich kann nicht sagen, ob seit einem bestimmten Serverupdate), habe ich diese Fehler auch. Vor allem dann, wenn durch den Autoupload der Androidclients mehrere Uploads nacheinander erfolgen. Aber in vielen anderen Situationen auch.

Es ist sehr störend, und es kommt dabei (Autouploads) zu Datenverlusten. Wenn diese Fehler eintreten erscheinen im Androidclient Fehlermeldungen wie “Server nicht gefunden”, etc. Der Autoupload wird dann abgebrochen und wird später für einige Dateien nicht mehr aufgenommen, bzw. mit Fehlermeldungen wie “Ordnerfehler” oder “lokale Datei nicht vorhanden” (obwohl die Datei vorhanden ist), verweigert.

Nach Auskundft von webgo habe ich 15 Datenbankbenutzer. Dennoch sind diese Fehler so häufig, das bestimmte Funktionen meiner Cloud praktisch unbenutzbar sind.

Exception
Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [1203] User web39_5 already has more than 'max_user_connections' active connections
Exception thrown: Doctrine\DBAL\Exception

Vermutlich verwendet Nextcloud gleich mehrere Benutzer parallel um schneller arbeiten zu können. Wen dem so ist, muss jedoch seitens Nextcloud die Anzahl der max. User begrenzt sein, um diese Störungen zu vermeiden.

An der Stelle ist meine Recherche in diesem Forum leider erfolglos geblieben. Offensichtlich ist dieses Problem selten und evtl. sogar auf webgo begrenzt.

In einem anderen Beitrag habe ich gelesen, das die Konfiguration eines memcaches die Datenbankzugriffe stark verringern würde - aber bei wegbo kann kein memcache eingeschaltet werden.

Was also tun?

Probiere mal NC 28 - da tritt bei mir das Problem nicht mehr auf und ist zudem viel schneller. Mach aber vorher ein Backup - ist noch ein wenig buggy

Nein, Problem ist nicht gelöst.
Es wurde nur in die Protokolle geschoben, sodass es nicht sofort auffällig wird:

Blockzitat
Exception Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [1203] User 544 already has more than ‘max_user_connections’ active connections
Exception thrown: Doctrine\DBAL\Exception