Arkadaşlar merhaba, uzun süredir PHP ile proje geliştiriyorum ve PDO kullanarak veritabanı bağlantısı kuruyorum. Ama son zamanlarda can sıkıcı bir sorunla karşılaştım: bağlantı sürekli olarak düşüyor. Özellikle uzun süren işlemlerde veya sayfa yenilemelerinde "SQLSTATE[HY000] [2002] Connection timed out" gibi hatalar alıyorum. Bağlantıyı her seferinde yeniden kurmak zorunda kalıyorum, bu da performansı ciddi anlamda etkiliyor. Sizce bu sorun neden kaynaklanıyor olabilir? Sunucu taraflı bir zaman aşımı sorunu mu yoksa PDO yapılandırmamda bir eksiklik mi var? Özellikle paylaşımlı hosting kullananlar varsa benzer bir deneyim yaşadı mı?
Kendi kodumda PDO bağlantısını bir kere kurup, script boyunca aynı örneği kullanmaya çalışıyorum. Ama uzun süreli sorgular veya sayfa arasında gezinti yaparken bağlantının koptuğunu fark ettim. Hatta session içinde bağlantıyı saklamayı denedim ama işe yaramadı. Acaba PDO’nun "persistent connection" özelliğini kullanmalı mıyım? Yoksa her sayfada yeni bir bağlantı mı açmalıyım? Bu konuda kafam çok karışık, çünkü her yeni bağlantı açmak kaynak tüketimini artırıyor, ama bağlantı sürekli düşünce de işler aksıyor.
Bir de şu var: Veritabanı sunucusu ile web sunucusu farklı makinelerde çalışıyorsa, network kaynaklı bir sorun olabilir mi? Ya da MySQL’in wait_timeout ayarı mı çok düşük? Bu ayarları değiştirme şansım yoksa, PDO tarafında bağlantıyı canlı tutmak için bir "ping" mekanizması mı kurmalıyım? Detaylıca deneyimlerinizi ve çözüm önerilerinizi bekliyorum. Özellikle bu sorunu yaşayıp çözen varsa, hangi adımları izlediğini anlatırsa çok sevinirim.
Kendi kodumda PDO bağlantısını bir kere kurup, script boyunca aynı örneği kullanmaya çalışıyorum. Ama uzun süreli sorgular veya sayfa arasında gezinti yaparken bağlantının koptuğunu fark ettim. Hatta session içinde bağlantıyı saklamayı denedim ama işe yaramadı. Acaba PDO’nun "persistent connection" özelliğini kullanmalı mıyım? Yoksa her sayfada yeni bir bağlantı mı açmalıyım? Bu konuda kafam çok karışık, çünkü her yeni bağlantı açmak kaynak tüketimini artırıyor, ama bağlantı sürekli düşünce de işler aksıyor.
Bir de şu var: Veritabanı sunucusu ile web sunucusu farklı makinelerde çalışıyorsa, network kaynaklı bir sorun olabilir mi? Ya da MySQL’in wait_timeout ayarı mı çok düşük? Bu ayarları değiştirme şansım yoksa, PDO tarafında bağlantıyı canlı tutmak için bir "ping" mekanizması mı kurmalıyım? Detaylıca deneyimlerinizi ve çözüm önerilerinizi bekliyorum. Özellikle bu sorunu yaşayıp çözen varsa, hangi adımları izlediğini anlatırsa çok sevinirim.