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.