mysql: ¿ve todas las conexiones abiertas a una base de datos dada?

122

Con permisos administrativos en mysql, ¿cómo puedo ver todas las conexiones abiertas a una base de datos específica en mi servidor?

flybywire
fuente

Respuestas:

168

El comando es

SHOW PROCESSLIST

Desafortunadamente, no tiene parámetros de estrechamiento . Si los necesita, puede hacerlo desde la línea de comandos:

mysqladmin processlist | grep database-name
David Rabinowitz
fuente
23
mysqladmin -i 1 processlistpara actualizar la salida cada segundo.
chanux
55
si necesita autenticarsemysqladmin --user=[USERNAME] --password=[PASSWORD] -i 1 processlist
Tom Jenkinson
2
@ TomJenkinson Usualmente no lo uso porque no quiero que la contraseña aparezca en el historial de la línea de comandos o en la lista de procesos (ps aux)
David Rabinowitz
Como alternativa a @chanux, con una salida un poco más limpia en mi humilde opiniónwatch -n1 mysqladmin processlist
Josiah el
64

También puedes 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)

Siéntase libre de usar Mysql-server-status-variables o Too-many-connections-problem

Wiseland
fuente
2
De todos modos, %onn%no distingue entre mayúsculas y minúsculas %conn%.
Pacerier
Claro que puede usar% conn% en lugar de% onn%. Y sí, sobre todo no distingue mayúsculas de minúsculas. Para la sensibilidad caso consulte dev.mysql.com/doc/refman/5.0/en/...
wiseland
1
Esto muestra datos estadísticos / históricos. La pregunta es sobre las conexiones abiertas actualmente.
Mateo
32

Eso debería ser el truco para las versiones más recientes de MySQL:

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

Vadym Tyemirov
fuente
3
Este es el único correcto, aparte del elegido, que se puede hacer usando SQL en lugar de mysqladmin.
dresende
2
Gracias, esta es la respuesta que quería.
1
Esta respuesta es muy útil, muestra todas las conexiones y sus consultas, lo que puede ser de gran ayuda en mi caso.
Hammad Khan
10

Puede invocar el comando show status de MySQL

mostrar estado como 'Conn%';

Para obtener más información, lea Mostrar conexiones de bases de datos abiertas

Adatapost
fuente
3
Lo sentimos, pero esta solución muestra solo un valor. Prefiero el comando "mostrar estado como '% onn%';" que está en la misma página web referida.
Raúl Luna
@RaulLuna, de todos modos no distingue entre mayúsculas y minúsculas, ¿por qué? %onn% lugar de %conn%?
Pacerier
@Pacerier Es más que eso: es solo en caso de que la palabra "conexión" aparezca como parte de una palabra más grande (max_used_ connections, por ejemplo). Por supuesto, puede usar mostrar estado como '% conn%'
Raul Luna
@RaulLuna, si la palabra "conexión" aparecerá como parte de una palabra más larga, tanto %onn%y %conn%seguirá funcionando. Ninguna diferencia.
Pacerier
1
¿Por qué está marcado esto? no muestra las conexiones abiertas actuales.
James
3

SQL: muestra la lista de procesos completa;

Esto es lo que hace MySQL Workbench.

justAMySQL_starter
fuente
3

En MySql, la siguiente consulta mostrará el número total de conexiones abiertas:

show status like 'Threads_connected';
Ayan
fuente
2

Si está ejecutando un sistema * nix, también considere mytop .

Para limitar los resultados a una base de datos, presione "d" cuando se esté ejecutando y luego escriba el nombre de la base de datos.

Pryo
fuente
¿No está esta aplicación también usando show processlistinternamente?
Pacerier
Yo creo que si. mytop solo presenta la información perfectamente con opciones de filtrado. Lo he aprovechado mucho en el pasado al analizar problemas de rendimiento. Además, en emergencias es más rápido iniciar sesión en una máquina, ejecutar mytop e inmediatamente ver lo que está sucediendo. Al igual que correr "top".
Pryo
Al usar más componentes, te estás exponiendo a más errores. Dado que show processlistla producción satisface, ¿por qué lo necesitarías mytop?
Pacerier
2
¿Por qué usar "top" cuando "ps aux" satisfices?
Pryo
-1

En el navegador de consultas, haga clic derecho en la base de datos y seleccione la lista de procesos

Kanagaraj M
fuente
Esto es específico de un cliente.
Nino Škopac