Menyelesaikan Kunci Jadual MySQL Tanpa Mulakan Semula Pelayan
Ralat "Tamat masa menunggu kunci telah melebihi; cuba mulakan semula transaksi" sering disalahtafsirkan sebagai memerlukan permulaan semula pelayan. Walau bagaimanapun, isu kunci ini boleh berlaku walaupun tanpa transaksi yang jelas. Mari kita periksa punca dan tawarkan penyelesaian untuk melepaskan jadual yang terjejas.
Ralat menunjukkan kunci yang menghalang pernyataan MySQL UPDATE
. Walaupun tanpa memulakan transaksi, MySQL mungkin mengekalkan kunci disebabkan transaksi tersirat atau proses latar belakang.
Untuk menyelesaikan masalah ini, kaedah langsung (walaupun berpotensi berisiko) ialah membuka kunci jadual secara paksa:
<code class="language-sql">mysql -u your_user -p</code>
<code class="language-sql">mysql> show open tables where in_use > 0;</code>
Ini memaparkan jadual terkunci pada masa ini.
<code class="language-sql">mysql> show processlist;</code>
Ini menunjukkan proses aktif. Kenal pasti proses mengunci jadual sasaran.
<code class="language-sql">mysql> kill <process_id>;</code>
Ganti <process_id>
dengan ID proses penguncian.
Ini membuka kunci jadual secara paksa, mendayakan pernyataan UPDATE
. Yang penting, kaedah ini membawa risiko kerosakan data dan hanya boleh menjadi pembetulan sementara semasa menangani masalah aplikasi yang mendasari.
Atas ialah kandungan terperinci Bagaimana untuk Membuka Kunci Jadual MySQL Terkunci Tanpa Memulakan Semula Pelayan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!