Comment Trouver Et Tuer Le Processus MySQL

Introduction

Les processus MySQL inutiles peuvent entraîner des problèmes de performances sur votre système. Au fil du temps, les threads actifs s’accumulent et bloquent votre serveur, empêchant les utilisateurs d’accéder aux tables et d’exécuter des requêtes.

Lorsque l’utilisation des ressources est extrêmement élevée, vous devrez peut-être arrêter les processus MySQL. Ce guide vous montrera comment identifier les processus MySQL et tuer un processus.

Conditions préalables

  • Accès à une ligne de commande/fenêtre de terminal
  • MySQL ou MariaDB installé
  • Utilisateur avec privilèges sudo ou root

Comment Trouver La Liste Des Processus MySQL

Avant de pouvoir localiser un processus et le tuer, vous devez accéder à un serveur MySQL local ou distant. Pour vous connecter à votre compte local MySQL en tant que root, ouvrez le terminal et entrez :

mysql -u racine -p

Tapez le mot de passe lorsque vous y êtes invité. Lorsque le shell MySQL se charge, l’invite affiche mysql> .

Pour localiser un processus à tuer ou à terminer, chargez la liste avec toutes les sessions actives.
Dans le shell MySQL, utilisez cette requête :

AFFICHER LA LISTE DE PROCESSUS ;

La sortie affiche les informations suivantes :

Vous pouvez avoir plus d’entrées sur votre liste. Notez l’ ID du processus que vous voulez tuer. La colonne Heure vous aide à déterminer les processus les plus longs. Ce sont généralement ceux que vous souhaitez résilier en premier.

Comment Tuer Le Processus MySQL

Pour tuer une session MySQL de la liste, utilisez la requête KILL suivie de l’ ID de thread que vous avez noté précédemment.

TUER 14;

Le shell affiche l’état de la requête et le nombre de lignes affectées : « Requête OK, 0 lignes affectées (0,06 sec) » . Cette requête met fin à la connexion à la base de données, y compris toutes les opérations associées à la connexion.

N’oubliez pas qu’un utilisateur doit disposer des privilèges appropriés pour pouvoir tuer un processus.

Comment Tuer Tous Les Processus MySQL Pour Un Utilisateur Spécifique

MySQL n’a pas de commande unique pour tuer tous les processus.

Pour tuer tous les processus d’un utilisateur spécifique, utilisez CONCAT pour créer un fichier avec la liste des threads et des instructions. Dans notre cas, nous avons entré root comme utilisateur. Pour spécifier un autre utilisateur, remplacez root par le nom d’utilisateur souhaité.

SELECT CONCAT('KILL ',id,';') FROM information_schema.processlist WHERE user='root' INTO OUTFILE '/tmp/process_list.txt';

Cette requête a créé un fichier appelé process_list.txt . Vous pouvez modifier le nom à votre guise. Ouvrez le fichier et vérifiez si ce sont les processus que vous souhaitez tuer. Lorsque vous êtes prêt, entrez :

SOURCE /tmp/process_list.txt ;

Vous pouvez ajouter des conditions à la requête pour réduire la liste des processus dans le fichier de sortie. Par exemple, ajoutez time > 1000 à la commande pour inclure uniquement les processus dont la valeur time est supérieure à 1000.

SELECT CONCAT('KILL ',id,';') FROM information_schema.processlist WHERE user='root' and time>1000 INTO OUTFILE '/tmp/process_list.txt';

Conclusion

Ce guide a décrit le moyen le plus simple de trouver et de tuer les processus MySQL. Assurez-vous de toujours revérifier les processus que vous arrêtez avant d’exécuter une requête MySQL.

Pour les options permettant d’optimiser davantage une base de données MySQL, lisez notre article sur le réglage des performances MySQL.

Cet article a-t-il été utile?

Oui Non