mysql: voir toutes les connexions ouvertes à une base de données donnée?


123

Avec les autorisations administratives im mysql, comment puis-je voir toutes les connexions ouvertes à une base de données spécifique sur mon serveur?

Réponses:


169

La commande est

SHOW PROCESSLIST

Malheureusement, il n'a pas de paramètres de réduction . Si vous en avez besoin, vous pouvez le faire à partir de la ligne de commande:

mysqladmin processlist | grep database-name

23
mysqladmin -i 1 processlistpour actualiser la sortie toutes les secondes.
chanux

5
si vous devez vous authentifiermysqladmin --user=[USERNAME] --password=[PASSWORD] -i 1 processlist
Tom Jenkinson

2
@TomJenkinson Je ne l'utilise généralement pas parce que je ne veux pas que le mot de passe apparaisse dans l'historique de la ligne de commande ou dans la liste des processus (ps aux)
David Rabinowitz

Comme alternative à @chanux, avec une sortie légèrement plus propre à mon humble aviswatch -n1 mysqladmin processlist
Josiah

64

Vous pouvez également utiliser:

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)

N'hésitez pas à utiliser Mysql-server-status-variables ou Too-many-connections-problem


2
C'est insensible à la casse de toute façon, pourquoi %onn%au lieu de %conn%?
Pacerier

Bien sûr, vous pouvez utiliser% conn% au lieu de% onn%. Et oui, la plupart du temps, c'est insensible à la casse. Pour connaître le
respect de la

1
Cela montre des données statistiques / historiques. La question concerne les connexions actuellement ouvertes.
Matthew

32

Cela devrait faire l'affaire pour les dernières versions de MySQL:

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


3
C'est le seul correct, en dehors de celui choisi, qui peut être fait en utilisant SQL au lieu de mysqladmin.
dresende

2
Merci, c'est la réponse que je voulais.

1
Cette réponse est très utile, montre toutes les connexions et ses requêtes, ce qui peut aider beaucoup dans mon cas.
Hammad Khan

10

Vous pouvez appeler la commande MySQL show status

afficher le statut comme «Conn%»;

Pour plus d'informations, lisez Afficher les connexions de base de données ouvertes


3
Désolé, mais cette solution n'affiche qu'une seule valeur. Je préfère la commande "show status like '% onn%';" qui se trouve dans la même page Web référencée.
Raul Luna

@RaulLuna, c'est insensible à la casse de toute façon, pourquoi %onn%au lieu de %conn%?
Pacerier

@Pacerier C'est plus que ça: c'est juste au cas où le mot "connection" apparaîtrait comme faisant partie d'un mot plus grand (max_used_connections, par exemple). Bien sûr, vous pouvez utiliser le statut d'
Raul Luna

@RaulLuna Si le mot « connexion » apparaît dans le cadre d'un grand mot, à la fois %onn%et %conn%continuera de fonctionner. Aucune différence.
Pacerier

1
pourquoi est-ce marqué? il n'affiche pas les connexions ouvertes actuelles.
James


3

Dans MySql, la requête suivante doit afficher le nombre total de connexions ouvertes:

show status like 'Threads_connected';

2

Si vous utilisez un système * nix, pensez également à mytop .

Pour limiter les résultats à une seule base de données, appuyez sur «d» lors de son exécution, puis saisissez le nom de la base de données.


Cette application n'utilise-t-elle pas également en show processlistinterne?
Pacerier

Je crois que oui. mytop présente simplement les informations avec des options de filtrage. J'en ai beaucoup utilisé dans le passé lors de l'analyse des problèmes de performances. De plus, il est plus rapide en cas d'urgence de se connecter à une machine, d'exécuter mytop et de voir immédiatement ce qui se passe. Un peu comme courir "top".
Pryo

En utilisant plus de composants, vous vous exposez à plus de bogues. Puisque show processlistla sortie de est satisfaisante, pourquoi en auriez-vous besoin mytop?
Pacerier

2
Pourquoi utiliser "top" quand "ps aux" satisfait?
Pryo

-1

Dans le navigateur de requêtes, faites un clic droit sur la base de données et sélectionnez la liste de processus


Ceci est spécifique à un client.
Nino Škopac
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.