web-dev-qa-db-fra.com

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, traiter les identifiants de MySql et les tuer?

22
Ashish Dadhich

Ici je vais avec la solution.

  1. Connectez-vous à la base de données.
  2. lancer la commande show full processlist; 
  3. Ici, vous obtiendrez l'ID de processus avec le statut et l'interroger, ce qui pose le problème du blocage de la base de données.
  4. Maintenant, sélectionnez l'identifiant du processus et lancez la commande KILL <pid>;
  5. Maintenant ce point vous tuez ce processus.

Parfois, cela ne suffit pas pour tuer chaque processus manuellement. Donc, pour cela, nous devons utiliser une sorte de truc. je vais avec cette astuce:

  1. Se connecter à MySql 
  2. exécuter cette requête Select concat('KILL ',id,';') from information_schema.processlist where user='user';
  3. Ceci imprimera tout le processus avec la commande KILL.
  4. Copiez tout le résultat de la requête, manipulez-le, supprimez le signe | du tuyau et collez-le à nouveau dans la console de requête. HIT ENTER. BooM c'est fait .
48
Ashish Dadhich

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 killall en utilisant (selon tous les processus en cours d'exécution):

killall -9 mysql
killall -9 mysqld
killall -9 mysqld_safe    
1
Pritam Banerjee