Maison > Article > base de données > Comment réparer « Délai d'attente de verrouillage dépassé ; essayez de redémarrer la transaction » pour une table MySQL « bloquée » ?
Correction du "Délai d'attente de verrouillage dépassé ; essayez de redémarrer la transaction" pour une table MySQL "bloquée"
Une table MySQL peut devenir "bloquée" pour diverses raisons, telles que des requêtes de longue durée ou des transactions non validées. Un message d'erreur courant associé à ce problème est "Délai d'attente de verrouillage dépassé ; essayez de redémarrer la transaction."
Ce problème peut se produire lorsqu'une requête est exécutée sans une clause WHERE appropriée, ce qui entraîne des mises à jour répétées de la même colonne pour tous. lignes du tableau. De plus, des mises à jour fréquentes de l'index peuvent aggraver le problème.
Pour résoudre ce problème et débloquer la table, il est nécessaire d'identifier et de mettre fin aux transactions bloquées. Les étapes suivantes peuvent être suivies :
Utilisez SHOW PROCESSLIST ; commande pour répertorier tous les threads en cours d’exécution dans l’interface de ligne de commande MySQL ou phpMyAdmin. Identifiez tous les threads avec des temps d'exécution considérablement élevés.
Pour les threads avec des temps d'exécution excessifs, utilisez la commande KILL suivie de l'ID de thread correspondant. Cela mettra fin à la connexion pour ce thread. Dans phpMyAdmin, il existe un bouton « Kill » pratique qui peut être utilisé à cette fin.
Pour tuer le fil de discussion 115 de la ligne de commande, entrez ce qui suit :
KILL 115;
Cela mettra fin à la transaction bloquée et déverrouillera la table, permettant ainsi aux opérations normales de reprendre.
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!