Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyahpepijat MySQL 'Tamat masa menunggu kunci melebihi' Ralat?

Bagaimana untuk Menyahpepijat MySQL 'Tamat masa menunggu kunci melebihi' Ralat?

Patricia Arquette
Patricia Arquetteasal
2024-12-18 06:10:15711semak imbas

How to Debug the MySQL

menyahpepijat tamat masa tunggu kunci melebihi Ralat pada MySQL

Ralat melebihi tamat masa menunggu kunci ialah petunjuk isu sumber dalam MySQL. Ralat ini bermakna pelanggan tidak dapat memperoleh kunci pada sumber dalam tempoh yang ditetapkan.

Ralat ini berkait rapat dengan jadual InnoDB yang menyimpan data dalam format baris. Jadual ini memerlukan kunci semasa sebarang pengubahsuaian, seperti sisipan, pemadaman atau kemas kini.

Salah satu cara untuk menangani isu ini ialah dengan meningkatkan nilai tamat masa menunggu kunci untuk InnoDB dengan mengoptimumkan innodb_lock_wait_timeout pembolehubah. Nilai lalai untuk pembolehubah ini ialah 50 saat. Ia boleh ditetapkan kepada nilai yang lebih tinggi untuk menyediakan lebih banyak masa untuk pemerolehan kunci. Ini boleh dilakukan dalam pelbagai cara:

  • Tambah baris berikut pada fail konfigurasi /etc/my.cnf anda dan mulakan semula MySQL:

    [mysqld]
    innodb_lock_wait_timeout=120
  • Laksanakan arahan berikut untuk menetapkan pembolehubah untuk tempoh semasa sesi:

    SET GLOBAL innodb_lock_wait_timeout = 120;

Selain itu, adalah penting untuk mengenal pasti jadual dan baris tertentu yang menyebabkan pertikaian kunci. Ini boleh dicapai dengan melaksanakan arahan berikut:

SHOW ENGINE INNODB STATUS\G

Output akan memberikan maklumat tentang jadual dan baris yang dikunci, termasuk ID mereka dan sifat kunci.

Mengoptimumkan aplikasi corak capaian untuk mengurangkan perbalahan kunci juga boleh membantu dalam menyelesaikan isu ini. Ini termasuk meminimumkan bilangan urus niaga serentak yang mengakses data yang sama dan menstruktur pertanyaan untuk mengelakkan kunci yang tidak diperlukan.

Ringkasnya, menyahpepijat ralat "Tamat masa menunggu kunci melebihi" memerlukan pengoptimuman innodb_lock_wait_timeout dan menganalisis jadual dan baris tertentu yang menyebabkan pertikaian kunci. Dengan melaksanakan langkah-langkah yang dicadangkan, anda boleh menyelesaikan ralat ini dan memastikan operasi pangkalan data MySQL anda lancar.

Atas ialah kandungan terperinci Bagaimana untuk Menyahpepijat MySQL 'Tamat masa menunggu kunci melebihi' Ralat?. 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