Ada pengaturan yang diperkenalkan di MySQL 5.5.30: innodb_print_all_deadlocks
Ketika opsi ini diaktifkan, informasi tentang semua kebuntuan dalam transaksi pengguna InnoDB dicatat dalam log kesalahan mysqld. Jika tidak, Anda melihat informasi tentang hanya kebuntuan terakhir, menggunakan perintah SHOW ENGINE INNODB STATUS. Kebuntuan InnoDB sesekali tidak selalu menjadi masalah, karena InnoDB segera mendeteksi kondisi tersebut, dan memutar kembali salah satu transaksi secara otomatis. Anda mungkin menggunakan opsi ini untuk memecahkan masalah mengapa deadlock terjadi jika aplikasi tidak memiliki logika penanganan kesalahan yang sesuai untuk mendeteksi rollback dan coba lagi operasinya. Sejumlah besar kebuntuan mungkin menunjukkan kebutuhan untuk merestrukturisasi transaksi yang mengeluarkan DML atau SELECT ... UNTUK UPDATE pernyataan untuk beberapa tabel, sehingga setiap transaksi mengakses tabel dalam urutan yang sama, sehingga menghindari kondisi kebuntuan.
Tambahkan saja pengaturan ini ke my.cnf
[mysqld]
innodb_print_all_deadlocks = 1
atau
[mysqld]
innodb_print_all_deadlocks = on
Anda tidak harus memulai ulang mysql. Cukup login ke mysql dan jalankan
mysql> SET GLOBAL innodb_print_all_deadlocks = 1;
or
mysql> SET GLOBAL innodb_print_all_deadlocks = 'ON';
Pengaturan ini juga baru bagi saya.
Cobalah dan beri tahu kami semua pendapat Anda !!!
mysql.user
dan menjalankanFLUSH PRIVILEGES;
.