Maison >base de données >tutoriel mysql >Comment résoudre l'erreur « Délai d'attente de verrouillage dépassé » sur les tables MySQL ?
Dépannage de l'erreur « Délai d'attente de verrouillage dépassé » sur la table MySQL
La rencontre de l'erreur « Délai d'attente de verrouillage dépassé » lors de la tentative d'opérations de base de données peut indiquer une transaction bloquée dans la table cible. Ce problème survient souvent en raison de requêtes incomplètes, telles que l'absence de la clause WHERE, qui peut mettre à jour par inadvertance plusieurs lignes ou mettre à jour la même colonne de manière répétée.
Pour résoudre ce problème dans une table InnoDB, où les transactions sont implicitement démarrées, nous pouvons utiliser les étapes suivantes :
Vérifier les threads en cours d'exécution :
Commencez par examiner les threads en cours d'exécution à l'aide de SHOW PROCESSLIST ; commande. Cela affichera une liste de fils de discussion, y compris leurs identifiants et l'heure d'exécution.
Identifiez le fil de discussion bloqué :
Recherchez les fils de discussion qui ont été fonctionnent pendant une durée inhabituellement longue ou sont dans un état « verrouillé ». Ces fils de discussion peuvent être responsables de la transaction bloquée.
Tuez le fil de discussion bloqué :
Une fois le fil de discussion problématique identifié, il peut être terminé. en utilisant la commande KILL suivie de son ID. Par exemple :
KILL 115;
L'exécution de cette commande mettra fin à la connexion associée au fil bloqué, libérant ainsi tous les verrous qu'il détenait.
Après avoir tué le fil bloqué, la table devrait redevenir opérationnelle. Les requêtes simples doivent s'exécuter normalement et les opérations de manipulation d'index, telles que la suppression de l'index, doivent réussir.
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!