Un problème courant dans MySQL implique la rencontre de l'erreur « Délai d'attente de verrouillage dépassé ; essayez de redémarrer la transaction » en essayant de modifier ou de supprimer un index sur une table. Cette erreur indique généralement une transaction bloquée dans la table, empêchant l'exécution des opérations.
Diagnostic du problème
Suspectez une transaction bloquée lorsqu'une table répond exceptionnellement lentement aux requêtes ou lorsque la suppression d'un index échoue avec le message d'erreur susmentionné.
Identification du fil bloqué
Pour identifier le thread responsable du blocage, exécutez la commande suivante dans MySQL interface de ligne de commande ou phpMyAdmin :
SHOW PROCESSLIST;
Cette commande affichera une liste de threads, y compris leurs identifiants et leurs heures d'exécution.
Terminer le fil bloqué
Une fois que vous avez identifié le thread qui prend trop de temps, vous pouvez y mettre fin en utilisant soit la commande KILL dans l'interface de ligne de commande, soit le bouton "Kill" dans phpMyAdmin.
Par exemple, pour tuer le thread ID 115, utilisez :
KILL 115;
Cette action mettra fin à la connexion pour ce fil de discussion spécifique.
Résoudre le problème
Après avoir tué le bloqué fil de discussion, vous devriez être capable de :
Conseils supplémentaires
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!