mysql: zobaczyć wszystkie otwarte połączenia z daną bazą danych?


123

Mając uprawnienia administracyjne im mysql, jak mogę zobaczyć wszystkie otwarte połączenia z określoną bazą danych na moim serwerze?

Odpowiedzi:


169

Polecenie jest

SHOW PROCESSLIST

Niestety nie ma parametrów zawężających . Jeśli ich potrzebujesz, możesz to zrobić z wiersza poleceń:

mysqladmin processlist | grep database-name

23
mysqladmin -i 1 processlistaby odświeżyć wyjście co sekundę.
chanux

5
jeśli potrzebujesz uwierzytelnieniamysqladmin --user=[USERNAME] --password=[PASSWORD] -i 1 processlist
Tom Jenkinson

2
@TomJenkinson Zwykle go nie używam, ponieważ nie chcę, aby hasło pojawiało się w historii wiersza poleceń lub na liście procesów (ps aux)
David Rabinowitz

Jako alternatywa dla @chanux, z nieco czystszym wyjściem imhowatch -n1 mysqladmin processlist
Josiah

64

Możesz również użyć:

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)

Zapraszam do korzystania z Mysql-server-status-variable lub Too-many-connections-problem


2
W każdym razie wielkość liter nie jest rozróżniana, dlaczego %onn%zamiast %conn%?
Pacerier

Jasne, że możesz użyć% conn% zamiast% onn%. I tak, w większości jest to niewrażliwe na wielkość liter. Rozróżnianie
wielkości

1
Pokazuje dane statystyczne / historyczne. Pytanie dotyczy aktualnie otwartych połączeń.
Matthew,

32

To powinno załatwić sprawę w przypadku najnowszych wersji MySQL:

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


3
To jedyny poprawny, poza wybranym, który można zrobić za pomocą SQL zamiast mysqladmin.
dresende

2
Dzięki, to jest odpowiedź, której szukałem.

1
Ta odpowiedź jest bardzo pomocna, pokaż wszystkie połączenia i jej zapytania, co może bardzo pomóc w moim przypadku.
Hammad Khan

10

Możesz wywołać polecenie MySQL show status

pokaż status jak „Conn%”;

Aby uzyskać więcej informacji, przeczytaj Pokaż otwarte połączenia z bazą danych


3
Przepraszamy, ale to rozwiązanie pokazuje tylko jedną wartość. Wolę polecenie "pokaż status jak '% onn%';" który znajduje się na tej samej stronie internetowej.
Raul Luna

@RaulLuna, i tak nie rozróżnia wielkości liter, dlaczego %onn%zamiast %conn%?
Pacerier

@Pacerier To coś więcej: na wypadek, gdyby słowo „połączenie” pojawiło się jako część większego słowa (na przykład max_used_connections). Oczywiście możesz użyć statusu programu, takiego jak „% conn%”
Raul Luna

@RaulLuna, Jeśli słowo „połączenie” pojawia się jako część większego słowa, oba %onn%i %conn%nadal będą działać. Bez różnicy.
Pacerier,

1
dlaczego jest to zaznaczone? nie pokazuje aktualnych otwartych połączeń.
James


3

W MySql poniższe zapytanie powinno pokazać całkowitą liczbę otwartych połączeń:

show status like 'Threads_connected';

2

Jeśli używasz systemu * nix, rozważ także mytop .

Aby ograniczyć wyniki do jednej bazy danych, naciśnij "d", gdy jest uruchomiona, a następnie wpisz nazwę bazy danych.


Czy ta aplikacja nie jest również używana show processlistwewnętrznie?
Pacerier,

Myślę, że tak. mytop po prostu starannie prezentuje informacje z opcjami filtrowania. W przeszłości robiłem z tego dobry użytek, analizując problemy z wydajnością. Ponadto w sytuacjach awaryjnych szybciej jest zalogować się do komputera, uruchomić mytop i od razu zobaczyć, co się dzieje. Podobnie jak bieganie „na górę”.
Pryo

Używając większej liczby komponentów, narażasz się na więcej błędów. Skoro show processlistwynik jest zadowalający, dlaczego miałbyś go potrzebować mytop?
Pacerier

2
Po co używać "top", kiedy "ps aux" jest zadowalające?
Pryo

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.