Maison >base de données >tutoriel mysql >Pourquoi est-ce que je reçois une erreur « Délai d'attente de verrouillage dépassé » même sans transactions ?

Pourquoi est-ce que je reçois une erreur « Délai d'attente de verrouillage dépassé » même sans transactions ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-18 13:07:09182parcourir

Why Am I Getting a

Résolution des erreurs « Délai d'attente de verrouillage dépassé » dans MySQL

L'erreur « Délai d'attente de verrouillage dépassé ; essayez de redémarrer la transaction » dans MySQL, même sans utiliser explicitement les transactions, est un problème courant avec plusieurs causes potentielles.

Un coupable fréquent est un verrou de table détenu par un autre processus. Pour identifier les tables verrouillées, utilisez cette commande :

<code class="language-sql">SHOW OPEN TABLES WHERE In_use > 0;</code>

Cette requête révèle les tables actuellement verrouillées. Si votre table cible apparaît, l'étape suivante consiste à trouver le processus responsable en utilisant :

<code class="language-sql">SHOW PROCESSLIST;</code>

Cela affiche les processus actifs. Localisez l'ID de processus (PID) verrouillant votre table et terminez-le avec :

<code class="language-sql">KILL <process_id>;</code>

Un autre scénario implique des transactions implicites. Vérifiez-les en utilisant :

<code class="language-sql">SELECT @@INNODB_TRX_ID;</code>

Un résultat non nul indique une transaction implicite active. Forcer un commit avec :

<code class="language-sql">COMMIT;</code>

En cas d'échec de ces étapes, le redémarrage du serveur MySQL ou l'optimisation de la table peuvent être des solutions nécessaires. L'optimisation des tables peut être réalisée à l'aide de diverses commandes en fonction de votre version et de vos besoins spécifiques de MySQL.

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!

Déclaration:
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