mysql: vê todas as conexões abertas com um determinado banco de dados?


122

Com permissões administrativas no mysql, como posso ver todas as conexões abertas com um banco de dados específico no meu servidor?

Respostas:


168

O comando é

SHOW PROCESSLIST

Infelizmente, não possui parâmetros de restrição . Se você precisar deles, pode fazê-lo na linha de comando:

mysqladmin processlist | grep database-name

23
mysqladmin -i 1 processlistpara atualizar a saída a cada segundo.
chanux

5
se você precisa se autenticarmysqladmin --user=[USERNAME] --password=[PASSWORD] -i 1 processlist
Tom Jenkinson

2
@TomJenkinson Eu normalmente não usá-lo porque eu não quero a senha para aparecer no histórico da linha de comando ou na lista de processos (ps aux)
David Rabinowitz

Como uma alternativa para @chanux, com um imho saída ligeiramente mais limpawatch -n1 mysqladmin processlist
Josias

64

Também você pode usar:

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)

Sinta-se livre para usar Mysql-server-status-variable ou Too-many-connections-problem


2
É sensível a maiúsculas e minúsculas, por que em %onn%vez de %conn%?
Pacerier

Claro que você pode usar% conn% em vez de% onn%. E sim, principalmente não faz distinção entre maiúsculas e minúsculas. Para a sensibilidade caso consulte dev.mysql.com/doc/refman/5.0/en/...
wiseland

1
Isso mostra dados estatísticos / históricos. A questão é sobre as conexões atualmente abertas.
Matthew

32

Isso deve fazer o truque para as versões mais recentes do MySQL:

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


3
Este é o único correto, além do escolhido, o que pode ser feito usando SQL em vez de mysqladmin.
dresende

2
Obrigado, esta é a resposta que eu queria.

1
Esta resposta é muito útil, mostra todas as conexões e suas consultas, o que pode ajudar bastante no meu caso.
Hammad Khan

10

Você pode chamar o comando show status do MySQL

mostrar status como 'Conn%';

Para obter mais informações, leia Mostrar conexões abertas do banco de dados


3
Desculpe, mas esta solução mostra apenas um valor. Eu prefiro o comando "show status like '% onn%';" que está na mesma página da web referida.
Raul Luna

@RaulLuna, não faz distinção entre maiúsculas e minúsculas, por que em %onn%vez de %conn%?
Pacerier

@Pacerier É mais do que isso: é apenas no caso de a palavra "conexão" aparecer como parte de uma palavra maior (max_used_connections, por exemplo). Claro que você pode usar o status do programa como '% conn%'
Raul Luna

@RaulLuna, se a palavra "conexão" aparecer como parte de uma palavra maior, ambas %onn%e %conn%ainda funcionarão. Não faz diferença.
Pacerier

1
por que isso está marcado? não mostra as conexões abertas atuais.
James


3

No MySql, a seguinte consulta deve mostrar o número total de conexões abertas:

show status like 'Threads_connected';

2

Se você estiver executando um sistema * nix, considere também o mytop .

Para limitar os resultados a um banco de dados, pressione "d" quando estiver em execução e digite o nome do banco de dados.


Este aplicativo também não está usando show processlistinternamente?
Pacerier

Eu acredito que sim. mytop apenas apresenta as informações ordenadamente com opções de filtragem. Eu fiz muito bom uso no passado enquanto analisava problemas de desempenho. Além disso, é mais rápido em emergências fazer logon em uma máquina, executar o mytop e ver imediatamente o que está acontecendo. Bem como correr "top".
Pryo

Ao usar mais componentes, você está se expondo a mais erros. Como show processlista produção é satisfatória, por que você precisaria mytop?
Pacerier

2
Por que usar "top" quando "ps aux" satisfaz?
Pryo

-1

No navegador de consulta, clique com o botão direito do mouse no banco de dados e selecione lista de processos


Isso é específico para um cliente.
Nino Škopac
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.