Aperçu
Si vous avez une requête longue qui est incorrecte ou qui prend trop de temps à se terminer, vous pouvez arrêter la requête individuelle sans affecter les autres bases de données.
Ne tuez pas de force MySQL le processus MySQL directement. Cela entraînera très probablement une corruption des données.
Instructions
- Connectez-vous à votre shell MySQL en tant qu'utilisateur root :
mysql -uroot -p
Pour les utilisateurs de Plesk, utilisez ce qui suit :
mysql -u admin -p`cat /etc/psa/.psa.shadow`
- Afficher une liste de processus avec le "SHOW PROCESSLIST ;" commande. Vous devriez voir quelque chose comme ceci :
mysql> show processlist;+----+-------+-----------+------+-- -------+------+----------+--------------------+| identifiant | Utilisateur | Hôte | db | Commande | Temps | État | Infos |+----+-------+-----------+------+---------+----- -+----------+--------------------+| 11 | web01 | hôte local | NUL | Requête | 1231 | mise à jour | SUPPRIMER DES journaux.. || 15 | web02 | hôte local | NUL | Sommeil | 10 | NUL | NUL || 41 | racine | hôte local | NUL | Requête | 0 | NUL | afficher la liste des processus |+----+-------+-----------+------+---------+---- --+----------+--------------------+3 lignes dans l'ensemble (0.00 sec)
- Localisez le processus que vous souhaitez tuer, dans ce cas nous allons tuer la requête DELETE avec l'ID de 11 avec la commande KILL :
KILL 11;Query OK, 0 rowsaffected (0.00 sec)
- Vous pouvez exécuter "AFFICHER LA LISTE DE PROCESSUS ;" à nouveau pour confirmer que le processus a été arrêté.