2016-08-29 3 views
0

Ich habe ein Problem mit meiner Datenbank, ich richtete die max_user_connections zu 800 und das Problem persistent, "Benutzer root hat bereits mehr als 'max_user_connections' aktive Verbindungen" Ich würde gerne wissen, ob Es gibt ein Limit für max_user_connections, kann ich 10000 setzen und das wird meine Datenbank nicht brechen? Wie kann ich das Limit kennen?MYSQL, Limit für max_user_connections

Wenn ich rufe SHOW PROCESSLIST und Get this, ist alles richtig?

+0

Wie viele werden verwendet? Was zeigt 'SHOW PROCESSLIST'? – tadman

+1

die Anzahl der Benutzer ist nicht das Problem. Es zählt, was sie tun. Setzen Sie das Limit auf 10.000, wenn Sie möchten. Wenn Sie jedoch 10.000 Abfragen gleichzeitig ausführen, treten Leistungsprobleme auf. –

+0

Wer greift auf die Datenbank zu? Grund, den ich frage, ist, weil, wenn es viele verschiedene Benutzer gibt, die Zugang benötigen, das ein gültiges Problem ist. Aber wenn nicht, und Sie sind der einzige, der Zugriff benötigt, dann besteht das Problem darin, dass Sie Ihre vorherigen Verbindungen nicht schließen. – Luke

Antwort

-1

Um zu sehen, was die maximalen Verbindungen für einen Benutzer sind, verwenden Sie die Variable in Information_schema für Ihre MySQL-Datenbank, um die globale Konfiguration dafür zu sehen.

Wenn es Null ist, dann ist es keine Begrenzung, sonst wird das Limit auf die Eins als Antwort gesetzt.

Wenn Sie für bestimmte Benutzer überprüfen möchten, verwenden Sie diesen

SELECT max_user_connections FROM mysql.user WHERE user='db_user' AND host='localhost'; 

Nun zu Ihrer Frage, was die Wirkung ist dies auf die Erhöhung, Per

http://www.electrictoolbox.com/update-max-connections-mysql/

Hinweis, dass eine Erhöhung Die Anzahl der Verbindungen, die hergestellt werden können, wird erhöhen die potentielle Menge an RAM benötigt für MySQL zu laufen. Erhöhen Sie die Einstellung max_connections mit Vorsicht!

Also hier max_connections ist die Gesamtzahl der Verbindungen von allen Benutzern erlaubt.

Auch ich würde vorschlagen, Verbindungspool zu verwenden, so dass die Größe des Pools fest ist und es wird nur davon sein und wächst nicht. Stellen Sie außerdem sicher, dass es nach Abschluss der Arbeit wieder in den Pool zurückgegeben wird.

+0

Vielen Dank für die Antwort, wissen Sie, wie kann ich die max_connections basierend auf dem RAM berechnen? –

0

Zu viele aktive Verbindungen

Das Problem das Sie haben, weil Sie nicht früheren Verbindungen schließen werden, haben Sie verwendet, um die Datenbank zuzugreifen. (Und es ist auch wahrscheinlich, dass Sie viele separate Abfragen ausführen, die alle in einer einzigen Abfrage komprimiert werden könnten)

Aus dem Blick auf Ihre Fehlermeldung hat "Benutzer root" mehr als die maximal verfügbaren Verbindungen. Es gibt nicht 800 verschiedene Personen, die auf die Datenbank zugreifen, Sie greifen auf die Datenbank 800 verschiedene Male zu und nicht danach aufräumen.

+0

Ist eine gute Option, ich werde die CMS-Verbindungen überprüfen. –