Düzeltme: psql: sunucuya bağlanılamadı: Böyle bir dosya veya dizin yok



Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin

PostgreSQL, kendisini en gelişmiş açık kaynaklı veritabanı uygulama platformu olarak tanıtır ve Debian Linux kesinlikle onu daha da karmaşık hale getiren birçok pakete sahiptir. Ayrıca, Ubuntu Sunucusu veya çeşitli Ubuntu dönüşlerinden herhangi biriyle çalışıyorsanız, bunlar Debian’ın çekirdeğini temel aldıklarından PostgreSQL için çok sayıda paket bulabilirsiniz. Bu karmaşıklık ve geliştirme seviyesi, “sunucuya bağlanılamadı” ve “böyle bir dosya veya dizin yok” uyarılarını çok daha sinir bozucu hale getiriyor.



Neyse ki bunlar, PostgreSQL'in postgres adlı bir kullanıcının bu dizinlere sahip olmasını istemesinden kaynaklanan genellikle basit izin sorunları durumlarıdır. Basit bir komut satırı numarası kullanarak bunu neredeyse anında düzeltebilirsiniz. Bununla birlikte, aslında karşı karşıya olduğunuz sorunun gerçekten bu olduğundan emin olmak için önceden birkaç temel teşhis kontrolünden geçmek isteyeceksiniz.



PostgreSQL'in Düzeltilmesi Sunucu Hatalarına Bağlanamadı

Önce, PostgreSQL sistemini manuel olarak yeniden başlatmayı deneyin. Bazen bir şeyleri düzeltmek için bu 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 vererek sistemi yeniden başlatmanız yeterlidir.



Bunun her şeyi düzelttiğini fark edebilirsiniz. Aksi takdirde, 'psql: sunucuya bağlanılamadı: Böyle bir dosya veya dizin yok' yazan bir satır alabilirsiniz, bu da izin sorunlarınız olduğu anlamına gelir. Bu hata mesajını alırsanız, başka bir metin de tükenir.

Modüllerin yüklendiğinden emin olmak için bu mesajı aldıysanız hizmet durumunu kontrol edin. Olmalılar, ancak değilse yeniden başlatmak isteyebilirsiniz. 'Yüklendi: yüklendi (/lib/systemd/system/postgresql.service; etkinleştirildi)' şeklinde bir mesaj alırsanız, o zaman çalışıyorlar. Deneyin sudo hizmet postgresql yeniden başlat sadece kısa bir yeniden başlatma yapmak ve bunun herhangi bir şeyi düzeltip düzeltmediğini görmek için. Genelde olmaz, ancak buna bağlı olarak denemeye değer olabilir.




Yardımcı olmadığını varsayarsak, hataları aramak için PostgreSQL günlüğüne bir göz atın. Beklenmedik bir durumda, paket hatalarıyla ilgili bir şeyler bulduğunuzda, SQL modüllerinden biri eksik olabilir. Genellikle bu sorunların nedeni bu değildir, ancak en azından bir göz atmak kesinlikle zarar vermez. Muhtemelen, 'İzinler u = rwx (0700) olmalıdır' konusunda sizi uyaran bir şeyle karşılaşırsınız ve

'/var/lib/postgresql/9.6/main' veri dizini 'grup veya dünya erişimine sahiptir', ancak çalıştırdığınız SQL sunucusuna bağlı olarak farklı bir sürüm numarası görebilirsiniz.

Bunun nedeni, Debian ve benzer dağıtımların, postgres kullanıcısının ve grubun bu dizinleri 0700 izinleriyle ve tüm dosyaları 0600 izinleriyle güvenlik adına 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/

Bunun büyük harf X olması gerektiğini ve daha yaygın olan küçük harf x olması gerektiğini unutmayın, bu dosya izin seçeneklerini ayarlamak isteyeceğiniz özel yöntem nedeniyle muhtemelen daha aşina olduğunuzdur. Bunu yapmak için kök erişimine ihtiyacınız olsa da, bu iki sudo işaretinin dahil edilmesi, normal bir kullanıcı olarak çalışırken kendinize uygun izinleri vermek için fazlasıyla yeterli olmalıdır. Bu önemlidir, çünkü Ubuntu ve çeşitli Linux uygulamaları Ubuntu'dan ayrılmıştır, ana kök hesabın hashini çıkarır, bu yüzden işleri bu şekilde yapmanız gerekir.

Bu komut bittiğinde, hizmeti şu şekilde yeniden başlatabilirsiniz: sudo hizmet postgresql yeniden başlat terminalden ve bu sefer herhangi bir hata almamalısınız. Günlüğe bir göz atacak olsaydınız, izin sorunlarıyla ilgili bu uyarılar da 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 üzerinde değişiklik içeren herhangi bir şeyi manuel olarak yapmaya çalışmamanız koşuluyla, ilk kez düzelttikten sonra bunu tekrar yaşamamalısınız. İlk etapta bu sorunu düzeltmenin dışında, bunun gerçekten gerekli olması gereken bir durum yok.

3 dakika okundu