Heim > Datenbank > MySQL-Tutorial > So beheben Sie den Fehler „Lock Wait Timeout Exceeded' in MySQL: Entsperren einer hängengebliebenen Tabelle

So beheben Sie den Fehler „Lock Wait Timeout Exceeded' in MySQL: Entsperren einer hängengebliebenen Tabelle

Mary-Kate Olsen
Freigeben: 2024-11-19 17:08:03
Original
181 Leute haben es durchsucht

How to Fix

Entsperren einer „steckengebliebenen“ MySQL-Tabelle: Fehlerbehebung bei „Wartezeit für Sperre überschritten“

Wenn Sie auf die Fehlermeldung „Wartezeit für Sperre überschritten“ stoßen, versuchen Sie einen Neustart Wenn beim Arbeiten mit einer InnoDB-Tabelle in MySQL der Fehler „Transaktion“ auftritt, ist es wahrscheinlich, dass eine Transaktion hängengeblieben ist. So reparieren Sie die Tabelle und beheben die feststeckende Transaktion:

1. Identifizieren Sie die blockierte Transaktion:

Führen Sie den folgenden Befehl in der MySQL-Befehlszeilenschnittstelle oder über phpMyAdmin aus:

SHOW PROCESSLIST;
Nach dem Login kopieren

Dadurch wird eine Liste der laufenden Threads angezeigt. Suchen Sie nach Threads mit einer langen Ausführungszeit oder solchen, die sich im Ruhezustand befinden. Die entsprechende Thread-ID wird in der Spalte „Id“ angezeigt.

2. Beenden Sie den feststeckenden Thread:

Sobald der feststeckende Thread identifiziert wurde, beenden Sie ihn mit dem folgenden Befehl in der Befehlszeilenschnittstelle:

KILL <thread_id>;
Nach dem Login kopieren

Ersetzen Sie mit der ID des festsitzenden Threads.

3. Starten Sie die Transaktion neu (optional):

Wenn die Transaktion noch aktiv ist, starten Sie sie neu, um eventuelle Sperren aufzuheben. Sie können dies tun, indem Sie den folgenden Befehl ausführen:

START TRANSACTION;
COMMIT;
Nach dem Login kopieren

4. Löschen Sie den Index (falls zutreffend):

Wenn Sie zuvor versucht haben, einen Index für die betroffene Tabelle zu löschen, und dies aufgrund der Sperre fehlgeschlagen ist, versuchen Sie es erneut, nachdem Sie den hängengebliebenen Thread beendet und die Transaktion neu gestartet haben .

ALTER TABLE <table_name> DROP INDEX <index_name>;
Nach dem Login kopieren

Indem Sie diese Schritte befolgen, können Sie die hängengebliebene Tabelle entsperren und den Fehler „Wartezeit für Sperre überschritten“ beheben. Denken Sie daran, die laufenden Threads regelmäßig zu überprüfen, um potenziell feststeckende Transaktionen zu identifizieren und zu beenden, um ähnliche Probleme in der Zukunft zu vermeiden.

Das obige ist der detaillierte Inhalt vonSo beheben Sie den Fehler „Lock Wait Timeout Exceeded' in MySQL: Entsperren einer hängengebliebenen Tabelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage