GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment trouver et terminer / tuer le processus MySQL

Présentation

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.

Prérequis

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

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 saisissez :

mysql -u root -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 :

SHOW PROCESSLIST;

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. Le Time La colonne 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 le KILL requête suivie du fil Id vous avez noté plus tôt.

KILL 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 en tant qu'utilisateur. Pour spécifier un autre utilisateur, remplacez root avec 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, saisissez :

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 n'inclure que les processus dont la valeur de temps est supérieure à 1000.

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

Cent OS
  1. Comment tuer un processus zombie sous Linux

  2. Comment trouver les fichiers de configuration MySQL, PHP et Apache

  3. Comment trouver et tuer le processus Zombie sous Linux

  4. Comment puis-je trouver et tuer un processus dans Ubuntu

  5. Linux :trouver et tuer les processus zombies

Comment trouver l'ID de processus d'un programme et le tuer [Astuce rapide]

Comment tuer un processus sous Linux

Comment tuer ou terminer un processus Linux :Le guide ultime

Comment trouver le PID et le PPID d'un processus sous Linux

Comment tuer les processus sous Linux en utilisant kill, killall et pkill

Comment tuer les processus MySQL dans phpMyAdmin