Sunucuya bağlanılamadı, Böyle bir dosya veya dizin yok. PostgreSQL kendini en gelişmiş açık kaynak veritabanı uygulama platformu olarak tanıtır ve Debian Linux kesinlikle daha karmaşık hale getiren bir sürü paket içerir. Ayrıca PostgreSQL paketleri için yükleri de bulabilirsiniz; bunlar Ubuntu Sunucusu veya çeşitli Ubuntu turlarından biriyle çalışıyorsanız, çünkü bunlar Debian’ın çekirdeğini temel alırlar. Bu karmaşıklık ve gelişme seviyesi “sunucuya bağlanamadı” ve “böyle bir dosya veya dizin yok” uyarıları çok can sıkıcı kılıyor.
Neyse ki, bunlar genellikle PostgreSQL’in postgres adlı bir kullanıcının bu dizinlere tutunmasını istediği gerçeğinden kaynaklanan basit izin sorunları durumudur. Basit bir komut satırı kullanarak bunu hemen hemen düzeltebilirsiniz. Yine de, bunun aslında karşı karşıya kaldığınız bir sorun olduğundan emin olmak için, birkaç temel tanı kontrolünü yapmak isteyeceksiniz.
PostgreSQL’in Tespit Edilmesi Sunucu Hatalarına Bağlanamadı
İlk olarak, PostgreSQL sistemini manuel olarak yeniden başlatmayı deneyin. Bazen bu şeyler düzeltmek için yeterlidir ve değilse, en azından çalışmak için bir hata mesajı alırsınız. Büyük olasılıkla, postgres kullanıcısı olarak psql komutunu yayınlayarak sistemi yeniden başlatmanız yeterlidir.
Bunun her şeyi temizlediğini görebilirsiniz. Aksi takdirde, “psql: sunucuya bağlanılamadı: böyle bir dosya veya dizin yok” yazan bir satır alabilirsiniz, bu da izin sorunları yaşıyorsunuz demektir. Bu hata iletisini alırsanız, o zaman başka bir metin de tükürürsünüz.
Buna yardımcı olmadığını varsayarsak, hataları aramak için PostgreSQL günlüğünün içine bakmanız gerekir. Muhtemel durumda, paket hataları hakkında bir şeyler bulursanız, SQL modüllerinden birini eksik olabilir. Bu genellikle bu sorunların nedeni değildir, ancak kesinlikle en azından bir göz atmak zarar veremez. Büyük olasılıkla, “İzinler u = rwx (0700) olmalıdır” uyarısı yapan bir şeyle karşılaşırsınız.
“veri dizini” /var/lib/postgresql/9.6/main “gruba veya dünyaya erişimi vardır”, ancak çalıştırdığınız hangi SQL sunucusuna bağlı olarak farklı bir sürüm numarası görebilirsiniz.
Debian ve benzeri dağıtımlar postgres kullanıcılarının ve grupların bu dizinleri 0700 izinleriyle ve tüm dosyalarla 0600 izinleri aracılığıyla güvenlik amaçlarıyla kullanmasını beklemektedir. Tek yapmanız gereken izinleri düzeltmek için terminalde aşağıdaki komutu çalıştırmaktır:
sudo chown -R postgres: postgres /var/lib/postgresql/9.6/ && sudo chmod -R u = rwX, go = /var/lib/postgresql/9.6/
Bu, dosya izinli seçeneklerini belirlemek istediğiniz belirli yol nedeniyle muhtemelen daha fazla bilgi sahibi olduğunuz, büyük harf X ve daha yaygın olmayan küçük harf değil x olmalıdır. Bunu yapmak için kök erişiminize ihtiyacınız olsa da, bu iki sudo işaretinin dahil edilmesi, normal bir kullanıcı olarak çalışırken kendinize uygun izinler vermek için fazlasıyla yeterli olmalıdır. Bu, Ubuntu ve çeşitli Linux uygulamaları Ubuntu’nun ana kök hesabının dışına atıldığından önemlidir, böylece bu şekilde bir şey yapmanız gerekecektir.
Bu komut tamamlandıktan sonra, servisi terminale tekrar başlatmak için sudo service postgresql yeniden başlatabilir ve bu sefer herhangi bir hata yapmamanız gerekir. Günlüğe bakacak olsaydınız, izin sorunları ile ilgili bu uyarılar artık olmamalıdır.
Bu, oldukça belirli koşulların sonucunda ortaya çıkan bir hatadır; bu nedenle, PostgreSQL dizinlerinin izinlerinin değiştirilmesiyle alakalı bir iş yapmaya çalışmamanız koşuluyla, ilk kez onu düzelttikten sonra tekrar karşılaşmamalısınız. Her şeyden önce bu sorunun düzeltilmesi dışında gerçekten de gerekli olması gereken hiçbir durum yok.