Arkadaşlar merhaba, uzun süredir PHP ile proje geliştiriyorum ama son zamanlarda PDO ile veritabanı bağlantılarımda sürekli bir zaman aşımı sorunu yaşıyorum. Özellikle yoğun veri çekme işlemlerinde veya birden fazla sorgu ardışık çalıştırıldığında bağlantı kopuyor, "SQLSTATE[HY000] [2002] Connection timed out" hatası alıyorum. Sunucu ayarlarını kontrol ettim, timeout değerlerini artırdım ama hala çözüm bulamadım. Sizce bu sorun nereden kaynaklanıyor olabilir? Bağlantı dizesinde veya PDO ayarlarında gözden kaçırdığım bir şey mi var?
Aslında başlangıçta bu sorunu localhost'ta hiç yaşamıyordum, her şey sorunsuz çalışıyordu. Ama projeyi canlı sunucuya taşıyınca başladı bu sıkıntı. Sunucu yapılandırmasını incelediğimde mysql için wait_timeout değerini 300 saniyeye çıkardım, PHP tarafında da max_execution_time ve default_socket_timeout değerlerini yükselttim. Yine de özellikle uzun süren veri aktarım işlemlerinde veya bir döngü içinde sürekli sorgu çalıştırdığımda bağlantı kopuyor. Acaba PDO'nun kalıcı bağlantı (persistent connection) özelliğini kullanmak işe yarar mı, yoksa tam tersine sorunu daha da mı kötüleştirir? Deneyimli arkadaşların bu konuda fikirlerini merak ediyorum.
Bir de şöyle bir durum var: Hatayı aldığımda hemen sayfayı yenileyince bazen çalışıyor, bazen yine aynı hatayı veriyor. Bu da aklıma sunucudaki bağlantı havuzu veya aynı anda gelen çoklu isteklerle ilgili bir sorun olabileceğini getiriyor. Örneğin, aynı anda 10-15 kullanıcı siteye girdiğinde bağlantılar tükeniyor olabilir mi? Ya da PDO nesnesini her seferinde yeniden mi oluşturmalıyım yoksa tekil bir bağlantı mı kullanmalıyım? Sizler bu tür bir sorunla karşılaştınız mı, nasıl bir çözüm yolu izlediniz? Her türlü öneriye açığım, teşekkürler.
Aslında başlangıçta bu sorunu localhost'ta hiç yaşamıyordum, her şey sorunsuz çalışıyordu. Ama projeyi canlı sunucuya taşıyınca başladı bu sıkıntı. Sunucu yapılandırmasını incelediğimde mysql için wait_timeout değerini 300 saniyeye çıkardım, PHP tarafında da max_execution_time ve default_socket_timeout değerlerini yükselttim. Yine de özellikle uzun süren veri aktarım işlemlerinde veya bir döngü içinde sürekli sorgu çalıştırdığımda bağlantı kopuyor. Acaba PDO'nun kalıcı bağlantı (persistent connection) özelliğini kullanmak işe yarar mı, yoksa tam tersine sorunu daha da mı kötüleştirir? Deneyimli arkadaşların bu konuda fikirlerini merak ediyorum.
Bir de şöyle bir durum var: Hatayı aldığımda hemen sayfayı yenileyince bazen çalışıyor, bazen yine aynı hatayı veriyor. Bu da aklıma sunucudaki bağlantı havuzu veya aynı anda gelen çoklu isteklerle ilgili bir sorun olabileceğini getiriyor. Örneğin, aynı anda 10-15 kullanıcı siteye girdiğinde bağlantılar tükeniyor olabilir mi? Ya da PDO nesnesini her seferinde yeniden mi oluşturmalıyım yoksa tekil bir bağlantı mı kullanmalıyım? Sizler bu tür bir sorunla karşılaştınız mı, nasıl bir çözüm yolu izlediniz? Her türlü öneriye açığım, teşekkürler.