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?

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

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


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


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


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

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

show status like 'Threads_connected';

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.


¿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


Esto es específico de un cliente.
Nino Škopac
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.