Rumah >pangkalan data >tutorial mysql >Mengapa Saya Mendapat Ralat 'Tamat Masa Tunggu Kunci Melebihi' Walaupun Tanpa Transaksi?

Mengapa Saya Mendapat Ralat 'Tamat Masa Tunggu Kunci Melebihi' Walaupun Tanpa Transaksi?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-18 13:07:09253semak imbas

Why Am I Getting a

Menyelesaikan Ralat "Lock Wait Timeout Melebihi" dalam MySQL

Menghadapi ralat "Tamat masa menunggu kunci melebihi; cuba mulakan semula transaksi" dalam MySQL, walaupun tanpa menggunakan transaksi secara eksplisit, adalah masalah biasa dengan beberapa punca yang berpotensi.

Salah satu punca yang kerap berlaku ialah kunci meja yang dipegang oleh proses lain. Untuk mengenal pasti jadual terkunci, gunakan arahan ini:

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

Pertanyaan ini mendedahkan jadual yang sedang dikunci. Jika jadual sasaran anda muncul, langkah seterusnya ialah mencari proses yang bertanggungjawab menggunakan:

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

Ini memaparkan proses aktif. Cari ID proses (PID) yang mengunci jadual anda dan tamatkannya dengan:

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

Senario lain melibatkan transaksi tersirat. Semak ini menggunakan:

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

Hasil bukan sifar menunjukkan transaksi tersirat yang aktif. Paksa komitmen dengan:

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

Sekiranya langkah ini gagal, memulakan semula pelayan MySQL atau mengoptimumkan jadual mungkin merupakan penyelesaian yang diperlukan. Pengoptimuman jadual boleh dicapai menggunakan pelbagai arahan bergantung pada versi dan keperluan MySQL khusus anda.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Tamat Masa Tunggu Kunci Melebihi' Walaupun Tanpa Transaksi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn