Yanıtlar:
MySQL 5.5.30'da tanıtılan bir ayar var: innodb_print_all_deadlocks
Bu seçenek etkinleştirildiğinde, InnoDB kullanıcı işlemlerindeki tüm kilitlenmeler hakkındaki bilgiler mysqld hata günlüğüne kaydedilir. Aksi takdirde, SHOW ENGINE INNODB STATUS komutunu kullanarak yalnızca son kilitlenme hakkında bilgi görürsünüz. Ara sıra InnoDB kilitlenme mutlaka bir sorun değildir, çünkü InnoDB durumu hemen algılar ve işlemlerden birini otomatik olarak geri alır. Bir uygulamada geri alma algılayıp çalışmayı yeniden denemek için uygun hata işleme mantığı yoksa kilitlenme nedenlerinin giderildiğini gidermek için bu seçeneği kullanabilirsiniz. Çok sayıda kilitlenme, birden çok tablo için DML veya SELECT ... FOR UPDATE deyimleri yayınlayan işlemlerin yeniden yapılandırılması gerektiğini gösterebilir, böylece her işlem tablolara aynı sırayla erişerek kilitlenme koşulunu önler.
Bu ayarı şuraya eklemeniz yeterlidir: my.cnf
[mysqld]
innodb_print_all_deadlocks = 1
veya
[mysqld]
innodb_print_all_deadlocks = on
MySQL'i yeniden başlatmanız gerekmez. MySQL'e giriş yapın ve çalıştırın
mysql> SET GLOBAL innodb_print_all_deadlocks = 1;
or
mysql> SET GLOBAL innodb_print_all_deadlocks = 'ON';
Bu ayar benim için de yeni.
Bir deneyin ve bize ne düşündüğünüzü söyler !!!
mysql.user
ve çalıştırmak olamaz emin olmak için tetikleyicileri kullanır FLUSH PRIVILEGES;
.