Fix: psql: sunucuya bağlanılamadı: Böyle bir dosya veya dizin yok
PostgreSQL kendini en gelişmiş açık kaynaklı veritabanı uygulama platformu olarak tanıtıyor ve Debian Linux kesinlikle daha da karmaşık hale getirecek birçok pakete sahip. Ayrıca, Ubuntu Server veya çeşitli Ubuntu spin'lerinden herhangi biri ile çalışıyorsanız PostgreSQL'e yönelik paket yüklerini de bulabilirsiniz, çünkü bunlar Debian'ın çekirdeğini temel alır. Bu karmaşıklık ve geliştirme düzeyi, sunucuya bağlanamadı ve bu tür dosya veya dizin uyarıları çok daha can sıkıcı değildi.
Neyse ki, bunlar genellikle PostgreSQL'in postgres adında bir kullanıcının bu dizinlere tutunmasını istediği gerçeğinden kaynaklanan basit izin sorunlarıdır. Basit bir komut satırı kullanarak, neredeyse anında bunu düzeltebilirsiniz. Yine de, aslında bunun aslında karşılaştığınız problem olduğundan emin olmak için birkaç temel teşhis kontrolünden geçmek isteyeceksiniz.
PostgreSQL'in Sabitlenmesi Sunucu Hatalarına Bağlanamadı
Öncelikle, PostgreSQL sistemini manuel olarak yeniden başlatmayı deneyin. Bazen bu işleri düzeltmek için yeterlidir ve değilse de en azından çalışmak için bir hata mesajı alırsınız. Muhtemelen, sadece postgres kullanıcısı olarak psql komutunu vererek sistemi yeniden başlatırsınız.
Bunun her şeyi temizlediğini fark edebilirsiniz. Aksi halde, psql okuyan bir satır alabilirsiniz: sunucuya bağlanamadı: Böyle bir dosya veya dizin yok, yani izin sorunlarınız var demektir. Bu hata mesajını alırsanız, başka bir metni de çıkartabilirsiniz.
Modüllerin yüklendiğinden emin olmak için bu mesajı aldığınızda servis durumunu kontrol edin. Olmalılar, ama değilse, yeniden başlatmak isteyebilirsiniz. Loaded: loaded (/lib/systemd/system/postgresql.service; enabled) yazan bir mesaj alırsanız, o zaman çalışırlar. Sadece kısa bir yeniden başlatma yapmak ve herhangi bir şey düzeltir olup olmadığını görmek için sudo hizmeti postgresql yeniden başlatmayı deneyin. Genellikle olmaz, ama denemeye değer olabilir.
PRO TIP: Sorun bilgisayarınız veya dizüstü bilgisayar / dizüstü bilgisayar ile yapılmışsa, depoları tarayabilen ve bozuk ve eksik dosyaları değiştirebilen Reimage Plus Yazılımı'nı kullanmayı denemeniz gerekir. Bu, çoğu durumda, sorunun sistem bozulmasından kaynaklandığı yerlerde çalışır. Reimage Plus'ı tıklayarak buraya tıklayarak indirebilirsiniz.
Yardım edilmediğini varsayarak hataları bulmak için PostgreSQL logunun içine bir göz atın. Muhtemelen durumda, paket hataları hakkında bir şey bulursanız, SQL modüllerinden birini eksik olabilirsiniz. Bu genellikle bu sorunların sebebi değildir, ama en azından bir bakıma zarar vermez. Muhtemelen, size uyarılar u = rwx (0700) olması gerektiği konusunda sizi uyaran bir şeyle karşılaşacaksınız.
Bu veri dizini /var/lib/postgresql/9.6/main'in grup veya dünya erişimi vardır, ancak çalıştığınız SQL sunucusuna bağlı olarak farklı bir sürüm numarası görebilirsiniz.
Bunun nedeni, Debian ve benzeri dağıtımların, postgres kullanıcısı ve grubunun bu dizinleri 0700 izinleriyle ve tüm dosyaları güvenlik adına 0600 izinleriyle kontrol etmesini beklemesidir. 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 izin seçeneklerini ayarlamak istediğiniz belirli bir yoldan dolayı daha büyük bir alt-durum x olması ve muhtemelen daha aşina olduğunuz küçük harf x olması gerektiğini unutmayın. Bunu yapmak için root erişimine ihtiyacınız olsa da, bu iki sudo işaretinin eklenmesi, düzenli bir kullanıcı olarak çalışırken uygun izinleri vermeniz için yeterli olmalıdır. Ubuntu ve çeşitli Linux uygulamalarının Ubuntu karmaşasından çıkarılmasından bu yana önemli olan şey bu yüzden işleri bu şekilde yapmanız gerekiyor.
Bu komut tamamlandığında, terminalden sudo service postgresql restart ile hizmeti tekrar başlatabilirsiniz ve bu sefer herhangi bir hata yapmamalısınız. Günlüğe bakacak olursanız, izin sorunları ile ilgili bu uyarılar artık orada olmamalıdır.
Bu, oldukça spesifik koşulların bir sonucu olarak meydana gelen bir hatadır, bu nedenle, PostgreSQL dizinlerinin izinleri manipüle etme işlemini içeren bir şeyi el ile yapmaya çalışmadığınız sürece, ilk defa düzelttikten sonra tekrar deneyimlememelisiniz. Bu sorunun düzeltilmesinin dışında, bunun gerçekten gerekli olması gereken bir durum yok.
PRO TIP: Sorun bilgisayarınız veya dizüstü bilgisayar / dizüstü bilgisayar ile yapılmışsa, depoları tarayabilen ve bozuk ve eksik dosyaları değiştirebilen Reimage Plus Yazılımı'nı kullanmayı denemeniz gerekir. Bu, çoğu durumda, sorunun sistem bozulmasından kaynaklandığı yerlerde çalışır. Reimage Plus'ı tıklayarak buraya tıklayarak indirebilirsiniz.