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?

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

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


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";


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


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

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

show status like 'Threads_connected';

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.


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


Dies ist spezifisch für einen Kunden.
Nino Škopac
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.