Tuer des processus MySQL de façon sélective

http://www.maraumax.fr/medias/Billets/mysql-shell.jpgJ'ai récemment eu besoin de killer tous les processus MySQL d'un utilisateur pour permettre une modification de table tranquillement. MySQL ne propose pas de commande pratique pour le faire et il est impossible d'ajouter des conditions à la commande kill.

Connectez vous à votre serveur MySQL et exécutez les commandes suivantes en utilisant vos conditions évidemment.

# Création d'un fichier temporaire sous la forme "kill id;"
select concat('KILL ',id,';') from information_schema.processlist where user='root' and time > 200 into outfile '/tmp/kill.tmp';
# On importe le fichier contenant nos commandes
source /tmp/kill.tmp;

Dans cet exemple, je récupère les IDs de tous les processus de l'utilisateur root lancés depuis plus de 200 secondes. N'hésitez pas à regarder la structure de la table processlist avec la commande suivante :

# Afficha la structure de la table des processus
describe information_schema.processlist;

Bon killing à vous !

Billets relatifs

Ajouter un commentaire





Les commentaires sont validés manuellement afin d'éviter le spam.