Kilit bekleme zaman aşımı aşıldı; işlemi yeniden başlatmayı dene


12

Bu hatayı her gün 4-5 kez tekrar tekrar alıyorum.

SQLSTATE [HY000]: Genel hata: 1205 Kilit bekleme zaman aşımı aşıldı; işlemi yeniden başlatmayı dene

Bu sefer phpmyadmin'i yeniden başlattım ama tekrar tekrar oluyor. Bu soruna işaret edemiyorum.

Magento ver kullanıyorum . Web sitesinde 1.9.0.1 . 7000+ ürünüm var. Sunucuda 16GB RAM var.

Bu sorun nasıl düzeltilir?

Yanıtlar:


8

İnnodb_lock_wait_timeout ayarını yaparak InnoDB için kilit bekleme zaman aşımı değerini artırmayı düşünmelisiniz , varsayılan değer 50 saniyedir

mysql> show variables like 'innodb_lock_wait_timeout';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| innodb_lock_wait_timeout | 50    |
+--------------------------+-------+
1 row in set (0.01 sec)

/etc/my.cnfBu hat ile kalıcı olarak daha yüksek bir değere ayarlayabilirsiniz

[mysqld]
innodb_lock_wait_timeout=120

ve mysql'yi yeniden başlatın. Şu anda mysql'yi yeniden başlatamıyorsanız, şunu çalıştırın:

SET GLOBAL innodb_lock_wait_timeout = 120; 

Ayrıca oturum süreniz için de ayarlayabilirsiniz

SET innodb_lock_wait_timeout = 120; 

ardından sorgunuz


3
neden 140 'veya 2000' olmasın? bu sorunu nasıl çözebilir? gizleyerek?
Elzo Valugi

tabloların beklenenden daha fazla kilitlenmesine neden olan bir sorununuz var. Bunu yaparsanız, sorunu bir kez düzeltmek yerine her seferinde 2 dakika beklemeye zorlarsınız. Ve Elzo'nun dediği gibi ... 120 yeterli olmadığında ne olur?
Carlos Robles

7

Erişmeye çalıştığınız veritabanı içerikleri önceki (genellikle uzun süredir çalışan) bir işlem tarafından kilitlenmişse bu mesajı görürsünüz. MySQL, kilidin kaldırılması ve bu hatayı atmadan önce belirli bir süre bekleyecektir. Günün herhangi bir saatinde bu hata mesajlarını gördüğünüzde izleyebiliyorsanız, sunucunun o sırada başka neler yaptığını incelemelisiniz - örneğin, bir veritabanı yedekleme çalışıyor. Bunu yaparak, her zaman yapmak o kadar basit olmasa da, biraz deneme yanılma olması muhtemel olan süreçlerin kilidi oluşturabileceği olasılıkları daraltabiliyor olmalısınız.


5

Bu sorunun arkasındaki nedeni, çok sayıda özel komut dosyası çalıştırıyorsanız ve veritabanı bağlantısının kapanma şansı elde etmeden önce komut dosyalarını öldürmenizdir.

Sorgunun yürütülmesini engelleyen bir şey var. Büyük olasılıkla sorgunuzdaki tablolardan birini güncelleme, ekleme veya silme işleminden başka bir sorgu. Bunun ne olduğunu bulmalısınız:

MySQL'e CLI'den giriş yapabilir ve aşağıdaki komutu çalıştırabilirsiniz

SHOW PROCESSLIST;

Engelleme / uyku işlemini bulduktan sonra işlemi bulun idve çalıştırın:

KILL {id};

İlk sorgunuzu yeniden çalıştırın.

Bu bağlantı size yardımcı olabilir: SQLSTATE [HY000]: Genel hata: 1205 Kilit bekleme zaman aşımı aşıldı; Magento işlemini yeniden başlatmayı deneyin .


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.