112 votes

Comment trouver la liste de processus MySQL et tuer ces processus?

Je suis confronté à un problème, que la base de données MySql se bloque, en raison de certaines requêtes.

Comment puis-je trouver la liste des processus, et traiter les identifiants de MySql et les tuer?

206voto

Ashish Dadhich Points 726

Ici, je aller avec la solution.

  1. Connexion à la DB.
  2. exécuter la commande show full processlist;
  3. Ici, vous aurez l'id de processus et leur état d'avancement de la Requête elle-même qui provoque le problème de la pendaison de base de données.
  4. Maintenant, sélectionnez l'id de processus et exécuter la commande KILL <pid>;
  5. Maintenant que le point de vous tuer ce processus.

Parfois, cela ne suffit pas à tuer chaque processus manuellement. Pour tout cela, nous avons pour aller avec une sorte de truc. ici, je aller avec cette astuce:

  1. Connexion à MySql
  2. exécuter cette requête Select concat('KILL ',id,';') from information_schema.processlist where user='user';
  3. Cela permettra d'imprimer tous les processus avec la commande KILL.
  4. Copier tous le résultat de la requête, les manipuler et les supprimer pipe | signe et coller le tout à nouveau dans la requête de la console. APPUYEZ SUR ENTRÉE. BooM de son fait.

15voto

Vous pouvez faire quelque chose comme ceci pour vérifier si un processus mysql est en cours d'exécution ou non:

 ps aux | grep mysqld
ps aux | grep mysql
 

Ensuite, s'il est en cours d'exécution, vous pouvez utiliser killall (en fonction de tous les processus en cours d'exécution):

 killall -9 mysql
killall -9 mysqld
killall -9 mysqld_safe    
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X