Ich hatte heute gerade das Problem, dass MySQL seine Datenbankverbindungskapazität erreicht hat.
Ich erhalte den folgenden Fehler: Error establishing a database connection
. Beim Versuch, auf zuzugreifen /phpma
, wird stattdessen dieser Fehler angezeigt: phpMyAdmin - Error #1040 - Too many connections
.
Ich habe nachgeschaut, wie ich my.cnf
die Anzahl der Verbindungen erhöhen kann, aber ich glaube, das habe ich schon vor einiger Zeit getan und hatte seitdem keine Probleme mehr. Ich mache mir daher ein wenig Sorgen, dass diese Verbindungen eine Art Schwachstelle darstellen.
Ich verwende CentOS. Gibt es eine einfache Möglichkeit, diese Verbindungen zu überprüfen? Gibt es etwas, worauf ich achten sollte, oder vielleicht nur eine Möglichkeit, Verbindungen auszusortieren, die zu lange aktiv waren (funktioniert MySQL überhaupt so?).
Antwort1
So sehen Sie unter Linux, welche Threads in MySQL ausgeführt werden:
root@myserver:~> mysqladmin processlist
Die entsprechende MySQL-Abfrage hierzu wäre:
root@myserver:~> mysql
mysql> SHOW FULL PROCESSLIST\G
Schauen Sie sich auch anUntersuchen von Thread-Informationenum zu sehen, was die Ausgabe bedeutet. Insbesondere:
BefehlUndZustandgeben Sie an, was der Thread macht.
Die meisten Zustände entsprechen sehr schnellen Vorgängen. Wenn ein Thread mehrere Sekunden in einem bestimmten Zustand bleibt, liegt möglicherweise ein Problem vor, das untersucht werden muss.
Der wichtigste Punkt besteht darin, sich die MySQL-Prozessliste anzusehen und zu prüfen, ob Ihnen angesichts der Art Ihrer Umgebung etwas verdächtig vorkommt, z. B. lang laufende Prozesse oder eine große Anzahl von Prozessen.
Antwort2
Verwenden Sie diesen Befehl und listen Sie laufende MySQL-Apps auf.
ps -aux | grep 'mysql'
Starten Sie dann Ihr gewünschtes MySQL auf dem Standardport „3306“.