WP DB Fehler max_user_connections

Ich erhalte diesen Fehler derzeit nur im Frontend (nicht in / wp-admin):

Warning: mysqli_real_connect(): (HY000/1203): User xxx already has more than 'max_user_connections' active connections in /hermes/.../public_html/myhome/wp-includes/wp-db.php on line 1489 Warning: mysql_connect(): User xxx already has more than 'max_user_connections' active connections in /hermes/.../public_html/myhome/wp-includes/wp-db.php on line 1515 Error establishing a database connection 

Und ich frage mich, warum erscheint das, wenn ich der einzige Besucher bin? Ich benutze WP 4.5.

Ich habe den Gastgeber kontaktiert, der so freundlich war wie folgt zu antworten:

 Currently your website is showing 'Error establishing a database connection' because the user of the database has exceeded the concurrent connection limit for a user of a database, which is 10. This is the reason website is loads database error. The script throws the concurrent connection error when number of database connections exceed the limit set on the server. In our shared platform, we allow maximum of 10 concurrent connections to a database, which is ideal in the shared platform and it is not possible to increase this limit. The query limit for your website will be reset within couple of hours so you should be able to access the database after couple of hours. There are two cases the script loads above error, one is when there is a high traffic to the website and database concurrent connection hits the limit and second case is the database connection is not closed in the script, even for the moderate traffic the script loads concurrent connection error. To overcome this issue, you have to close the database connection immediately after fetching the required content from the database. To close the database connection you can use mysql_close() PHP function with connection parameter. This will help you to use database connection limit efficiently. 

Mit anderen Worten, an unserem Ende ist alles in Ordnung, es ist ein WP-Fehler.

Solutions Collecting From Web of "WP DB Fehler max_user_connections"

Ich bin nicht sicher, ob ich das Recht habe, hier zu antworten, aber immer noch max_user_connections in der my.cnf MySQL Konfigurationsdatei zu erhöhen, da Sie gerade testen.

Es gibt eine Reihe von Ursachen für das Auslaufen von Verbindungen, die am häufigsten auftreten, wenn der Web- / Anwendungsserver unerwartet eine große Anzahl von Verbindungen aufgrund einer Fehlkonfiguration oder eines Skripts verursacht, bei denen Verbindungen unterbrochen oder zu viele errorshafte Verbindungen erstellt werden.

Die Lösung: Manche Leute erhöhen max_connections auf eine sehr hohe Zahl, so dass MySQL keine Verbindungen mehr hat.

Dies kann jedoch zu Ressourcennutzungsproblemen beim Speichern von Speicher führen und dazu führen, dass der MySQL-Server durch einen OOM-Killer-process ausgetauscht oder getötet wird, oder aufgrund von hohen Konflikten eine sehr schlechte performance aufweist.

Zuerst möchten Sie Fehler für $wpdb , die WP-databaseabstraktion $wpdb :

 $GLOBALS['wpdb']->show_errors; 

Sonst wird keine deiner DB-Verbindungen wirklich absterben und mit einer Instanz von \WP_Error . Der Standarderrorscode ist 500 .

Der folgende Fehler stammt von \wpdb::db_connect() :

databaseverbindung fehlgeschlagen

Es gibt zwei Fälle, in denen db_connect() verwendet wird:

  1. Stellen Sie eine Verbindung zur DB her
  2. Überprüfen Sie, ob eine Verbindung zur database besteht

Nur der Erste darf ablegen. Wenn die Verbindung abbricht, während nur die Prüfung ausgeführt wird, wird sie nicht abbrechen und diesen Fehler nicht auslösen. Jetzt wird die Verbindung von \wpdb_driver::connect() , was die Überprüfung liefert, ob die Verbindung aktiviert und verfügbar ist. Dies sagt Ihnen, dass Ihr tatsächliches Problem wirklich die Verbindung selbst ist. Sie können das in der folgenden Datei nachschlagen ( kein Witz ):

 # interface-wp-db-driver.php < ?php abstract class wpdb_driver { 

Sie sollten besser nicht darüber nachdenken, ob es eine Korrelation über die Gesamtqualität des WP-corecodes und das tiefe Verständnis von Schnittstellen und abstrakten classn gibt.

Kurz bevor die DB-Verbindung als "failed" deklariert wird und der Fehler weggeworfen wird, gibt es eine nette Zeile:

 require_once WP_CONTENT_DIR . '/db-error.php'; 

Dies bedeutet, dass ein Drop-In geladen wird bevor alles die . Sie können das verwenden und dort einen Debugging-Mechanismus starten. Sie haben den vollständigen WP-core dort zur Verfügung. Sie können beginnen, sich selbst zu mailen und diese Fehler in einigen ELK / Kibana, Spark oder irgendeinem Stack, SaaS oder sogar in Slack (oder nur in einer Textdatei) zu protokollieren. Loggen Sie Ihre Fehler dort ein, protokollieren Sie, was passiert, casting Sie Routen, Anfragen, DB-Verbindungsdetails ab, was auch immer Sie denken, könnte Ihnen helfen.

Web-Server sind Multi-Tasker … Unter der Annahme, dass Ihr Theme nicht direkt auf die database zugreift (nicht über die WPDB-class), sollte jede Benutzerverbindung der Lebensdauer einer von WP bearbeiteten Anforderung entsprechen.

Vorausgesetzt, dass Sie wahrscheinlich eine langsame Behandlung jeder Anfrage haben, in Kombination von mehreren Anfragen, die “auf einmal” bearbeitet werden, was passieren kann, wenn Ihr Thema Inhalte dynamisch mit AJAX lädt.

(das ist im Grunde das, was dein Gastgeber dir gesagt hat, was Sinn macht)