Maison >base de données >tutoriel mysql >Comment débloquer des tables MySQL verrouillées sans redémarrer le serveur ?

Comment débloquer des tables MySQL verrouillées sans redémarrer le serveur ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-18 13:21:10871parcourir

How to Unlock Locked MySQL Tables Without Restarting the Server?

Résoudre les verrous de table MySQL sans redémarrage du serveur

L'erreur « Délai d'attente de verrouillage dépassé ; essayez de redémarrer la transaction » est souvent interprétée à tort comme nécessitant un redémarrage du serveur. Cependant, ce problème de verrouillage peut survenir même sans transactions explicites. Examinons la cause profonde et proposons une solution pour libérer les tables concernées.

L'erreur indique un verrou empêchant une instruction MySQL UPDATE. Même sans lancer de transaction, MySQL peut conserver des verrous en raison de transactions implicites ou de processus en arrière-plan.

Pour résoudre ce problème, une méthode directe (bien que potentiellement risquée) consiste à déverrouiller la table de force :

  1. Connexion MySQL :
<code class="language-sql">mysql -u your_user -p</code>
  1. Identifier les tables verrouillées :
<code class="language-sql">mysql> show open tables where in_use > 0;</code>

Cela affiche les tables actuellement verrouillées.

  1. Examiner les processus actifs :
<code class="language-sql">mysql> show processlist;</code>

Cela montre les processus actifs. Identifiez le(s) processus verrouillant la(les) table(s) cible(s).

  1. Terminer le processus :
<code class="language-sql">mysql> kill <process_id>;</code>

Remplacez <process_id> par l'ID du processus de verrouillage.

Cela déverrouille de force les tables, permettant l'instruction UPDATE. Surtout, cette méthode comporte un risque de corruption des données et ne devrait être qu'une solution temporaire tout en résolvant le problème d'application sous-jacent.

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