MySQL: Alle offenen Verbindungen zu einer bestimmten Datenbank anzeigen?

122

Wie kann ich mit Administratorrechten im MySQL alle offenen Verbindungen zu einer bestimmten Datenbank auf meinem Server anzeigen?

Flybywire
quelle

Antworten:

168

Der Befehl lautet

SHOW PROCESSLIST

Leider hat es keine Verengungsparameter . Wenn Sie sie brauchen, können Sie dies über die Befehlszeile tun:

mysqladmin processlist | grep database-name
David Rabinowitz
quelle
23
mysqladmin -i 1 processlistum die Ausgabe jede Sekunde zu aktualisieren.
Chanux
5
Wenn Sie sich authentifizieren müssenmysqladmin --user=[USERNAME] --password=[PASSWORD] -i 1 processlist
Tom Jenkinson
2
@ TomJenkinson Ich benutze es normalerweise nicht, weil ich nicht möchte, dass das Passwort im Befehlszeilenverlauf oder in der Prozessliste (ps aux) erscheint
David Rabinowitz
Als Alternative zu @chanux, mit einer etwas saubereren Ausgabe imhowatch -n1 mysqladmin processlist
Josiah
64

Sie können auch Folgendes verwenden:

mysql> show status like '%onn%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| Aborted_connects         | 0     |
| Connections              | 303   |
| Max_used_connections     | 127   |
| Ssl_client_connects      | 0     |
| Ssl_connect_renegotiates | 0     |
| Ssl_finished_connects    | 0     |
| Threads_connected        | 127   |
+--------------------------+-------+
7 rows in set (0.01 sec)

Fühlen Sie sich frei, MySQL-Server-Statusvariablen oder Too-many-Connections-Problem zu verwenden

Wiseland
quelle
2
Es wird sowieso nicht zwischen Groß- und Kleinschreibung unterschieden. Warum %onn%statt %conn%?
Pacerier
Natürlich können Sie% conn% anstelle von% onn% verwenden. Und ja, meistens wird die Groß- und Kleinschreibung nicht berücksichtigt. Informationen zur
wiseland
1
Dies zeigt statistische / historische Daten. Die Frage bezieht sich auf derzeit offene Verbindungen.
Matthew
32

Das sollte den Trick für die neuesten MySQL-Versionen tun:

SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE DB = "elstream_development";

Vadym Tyemirov
quelle
3
Dies ist die einzige richtige, abgesehen von der ausgewählten, die mit SQL anstelle von ausgeführt werden kann mysqladmin.
Dresende
2
Danke, das ist die Antwort, die ich wollte.
1
Diese Antwort ist sehr hilfreich, zeigt alle Verbindungen und ihre Abfragen, was in meinem Fall sehr hilfreich sein kann.
Hammad Khan
10

Sie können den MySQL- Befehl show status aufrufen

Status wie 'Conn%' anzeigen;

Weitere Informationen finden Sie unter Offene Datenbankverbindungen anzeigen

Adatapost
quelle
3
Entschuldigung, aber diese Lösung zeigt nur einen Wert. Ich bevorzuge den Befehl "show status wie '% onn%';" Das ist in der gleichen verwiesenen Webseite.
Raul Luna
@ RaulLuna, es ist sowieso ohne Berücksichtigung der Groß- und Kleinschreibung, warum %onn%statt %conn%?
Pacerier
@Pacerier Es ist mehr als das: Es ist nur für den Fall, dass das Wort "Verbindung" als Teil eines größeren Wortes erscheint (z. B. max_used_connections). Natürlich können Sie den Show-Status wie '% conn%' verwenden
Raul Luna
@RaulLuna, Wenn das Wort "Verbindung" als Teil eines größeren Wortes erscheint, funktionieren beide %onn%und %conn%weiterhin. Kein Unterschied.
Pacerier
1
warum ist das markiert? Es werden nicht die aktuell offenen Verbindungen angezeigt.
James
3

SQL: vollständige Prozessliste anzeigen;

Dies ist, was die MySQL Workbench tut.

justAMySQL_starter
quelle
3

In MySql zeigt die folgende Abfrage die Gesamtzahl der offenen Verbindungen an:

show status like 'Threads_connected';
Ayan
quelle
2

Wenn Sie ein * nix-System verwenden, sollten Sie auch mytop in Betracht ziehen .

Um die Ergebnisse auf eine Datenbank zu beschränken, drücken Sie beim Ausführen "d" und geben Sie den Datenbanknamen ein.

Pryo
quelle
Wird diese App nicht auch show processlistintern verwendet?
Pacerier
Ich glaube schon. mytop präsentiert die Informationen nur übersichtlich mit Filteroptionen. Ich habe es in der Vergangenheit sehr gut genutzt, um Leistungsprobleme zu analysieren. Außerdem ist es in Notfällen schneller, sich an einem Computer anzumelden, mytop auszuführen und sofort zu sehen, was los ist. Ähnlich wie "top" laufen.
Pryo
Wenn Sie mehr Komponenten verwenden, setzen Sie sich mehr Fehlern aus. Da show processlistdie Ausgabe zufriedenstellend ist, warum sollten Sie sie benötigen mytop?
Pacerier
2
Warum "top" verwenden, wenn "ps aux" zufriedenstellend ist?
Pryo
-1

Klicken Sie im Abfragebrowser mit der rechten Maustaste auf Datenbank und wählen Sie Prozessliste

Kanagaraj M.
quelle
Dies ist spezifisch für einen Kunden.
Nino Škopac