Maison > base de données > tutoriel mysql > le corps du texte

Comment réparer les erreurs « Délai d'attente de verrouillage dépassé » dans MySQL : débloquer une table bloquée

Mary-Kate Olsen
Libérer: 2024-11-19 17:08:03
original
135 Les gens l'ont consulté

How to Fix

Déverrouillage d'une table MySQL « bloquée » : dépannage du « délai d'attente de verrouillage dépassé »

Lorsque vous rencontrez le « délai d'attente de verrouillage dépassé ; essayez de redémarrer transaction" lorsque vous travaillez avec une table InnoDB dans MySQL, il est probable qu'une transaction soit restée bloquée. Voici comment réparer la table et résoudre la transaction bloquée :

1. Identifiez la transaction bloquée :

Exécutez la commande suivante dans l'interface de ligne de commande MySQL ou via phpMyAdmin :

SHOW PROCESSLIST;
Copier après la connexion

Cela affichera une liste des threads en cours d'exécution. Recherchez les threads avec un temps d'exécution long ou ceux qui sont dans un état « Veille ». L'ID du fil de discussion correspondant sera affiché dans la colonne "Id".

2. Terminez le fil bloqué :

Une fois le fil bloqué identifié, terminez-le à l'aide de la commande suivante dans l'interface de ligne de commande :

KILL <thread_id>;
Copier après la connexion

Remplacez avec l'ID du fil bloqué.

3. Redémarrez la transaction (facultatif) :

Si la transaction est toujours active, redémarrez-la pour libérer les verrous qu'elle pourrait détenir. Vous pouvez le faire en exécutant la commande suivante :

START TRANSACTION;
COMMIT;
Copier après la connexion

4. Supprimez l'index (le cas échéant) :

Si vous avez déjà essayé de supprimer un index sur la table affectée et que cela a échoué en raison du verrou, essayez de le supprimer à nouveau après avoir terminé le thread bloqué et redémarré la transaction. .

ALTER TABLE <table_name> DROP INDEX <index_name>;
Copier après la connexion

En suivant ces étapes, vous pouvez déverrouiller la table bloquée et résoudre l'erreur « Délai d'attente de verrouillage dépassé ». N'oubliez pas de vérifier régulièrement les threads en cours d'exécution pour identifier et mettre fin à toute transaction potentiellement bloquée afin d'éviter des problèmes similaires à l'avenir.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal