mysql Lock timeout tunggu melebihi; coba mulai kembali transaksi


26

kami menjalankan aplikasi java, berjalan selama berabad-abad, back end adalah db adalah MySQL, baru-baru ini diperbarui ke mysql 5.6. Semuanya berjalan dengan baik, minggu lalu mulai mendapatkan kesalahan ini. Batas waktu tunggu tunggu terlampaui; coba mulai kembali transaksi yang sepertinya tidak pernah berhenti berakhir tidak tahu apa yang harus dilakukan dengan kesalahan ini untuk berhenti. mengapa itu terjadi tiba-tiba

Jawaban:


29

Anda dapat mengatur variabel innodb_lock_wait_timeout = 100 untuk waktu penguncian menjadi 100 detik.

mysql> set innodb_lock_wait_timeout=100;

Query OK, 0 rows affected (0.02 sec)

mysql> show variables like 'innodb_lock_wait_timeout';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| innodb_lock_wait_timeout | 100   |
+--------------------------+-------+

Transaksi yang merupakan batas waktu, cobalah untuk mengunci tabel yang ditahan oleh proses lain. dan variabel batas waktu Anda disetel dengan jumlah sedikit detik. jadi ini menunjukkan kesalahan. Anda dapat melihat lebih banyak status dengan perintah.

SHOW ENGINE INNODB STATUS\G 

Anda dapat melihat daftar tabel yang dikunci oleh-

 show open tables where in_use>0;

Sekarang lihat utas yang menggunakan tabel ini

  show full processlist;

sekarang Anda dapat membunuh utas itu atau menunggu untuk menyelesaikannya.



Terima kasih atas info ini, tetapi bagaimana seseorang dapat mengakses akar masalah ketika kunci terus terjadi, bahkan pada tabel yang sangat sederhana dengan pembaruan kecil (seperti menambah atau memperbarui satu bidang).
Wouter

-1

Jika menggunakan versi MySQL kurang dari 5.0 Anda tidak dapat mengubah variabel bahkan untuk sesi atau lingkup global. Solusi terbaik adalah dengan menangkap kueri dan menjalankannya setelah lalu lintas lambat.


2
OP mengatakan mereka menggunakan 5.6, yang (saya asumsikan) adalah 5.0 atau lebih besar.
RDFozz
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.