Poprawka: psql: nie można połączyć się z serwerem: nie ma takiego pliku lub katalogu



Wypróbuj Nasz Instrument Do Eliminowania Problemów

PostgreSQL promuje się jako najbardziej zaawansowana platforma aplikacji bazodanowych typu open source, a Debian Linux z pewnością ma mnóstwo pakietów, które czynią go jeszcze bardziej złożonym. Możesz także znaleźć mnóstwo pakietów dla PostgreSQL, jeśli pracujesz z Ubuntu Server lub którymkolwiek z różnych spinów Ubuntu, ponieważ są one oparte na rdzeniu Debiana. Ten poziom złożoności i rozwoju sprawia, że ​​ostrzeżenia „nie można połączyć się z serwerem” i „brak takiego pliku lub katalogu” są o wiele bardziej irytujące.



Na szczęście są to zazwyczaj proste przypadki problemów z uprawnieniami spowodowanych faktem, że PostgreSQL chce, aby użytkownik o nazwie postgres zatrzymał te katalogi. Używając prostej sztuczki wiersza poleceń, możesz to naprawić niemal natychmiast. Warto jednak wcześniej przejść przez kilka podstawowych testów diagnostycznych, aby upewnić się, że faktycznie jest to problem, z którym się borykasz.



Naprawianie błędów PostgreSQL nie mogło połączyć się z serwerem

Najpierw spróbuj ręcznie ponownie uruchomić system PostgreSQL. Czasami to wystarczy, aby coś naprawić, a jeśli nie, to przynajmniej otrzymasz komunikat o błędzie, z którego będziesz mógł pracować. Najprawdopodobniej po prostu zrestartujesz system, wydając komendę psql jako użytkownik postgres.



Może się okazać, że to wszystko wyjaśniło. W przeciwnym razie może pojawić się wiersz o treści „psql: nie można połączyć się z serwerem: nie ma takiego pliku lub katalogu”, co oznacza, że ​​masz problemy z uprawnieniami. Jeśli pojawi się ten komunikat o błędzie, otrzymasz także inny tekst.

Sprawdź stan usługi, jeśli dostałeś tę wiadomość, aby upewnić się, że moduły zostały załadowane. Powinny być, ale jeśli nie, możesz chcieć ponownie uruchomić. Jeśli pojawi się komunikat „Załadowano: załadowano (/lib/systemd/system/postgresql.service; włączone)”, oznacza to, że są one uruchomione. Próbować restart usługi sudo postgresql po prostu zrobić krótki restart i sprawdzić, czy to coś poprawia. Zwykle tak nie jest, ale w zależności od tego warto spróbować.




Zakładając, że to nie pomogło, zajrzyj do dziennika PostgreSQL i poszukaj błędów. W mało prawdopodobnym przypadku znalezienia informacji o błędach pakietu może brakować jednego z modułów SQL. Zwykle nie jest to przyczyną tych problemów, ale z pewnością nie zaszkodzi przynajmniej spojrzeć. Najprawdopodobniej natkniesz się na coś, co ostrzega, że ​​„Uprawnienia powinny być u = rwx (0700)” i

ten „katalog danych” /var/lib/postgresql/9.6/main ”ma dostęp do grupy lub świata”, chociaż możesz zobaczyć inny numer wersji w zależności od używanego serwera SQL.

Dzieje się tak, ponieważ Debian i podobne dystrybucje oczekują, że użytkownik i grupa postgres będą kontrolować te katalogi z uprawnieniami od 0700 i wszystkimi plikami do 0600 ze względów bezpieczeństwa. Wszystko, co musisz zrobić, to uruchomić następujące polecenie na terminalu, aby naprawić uprawnienia:

sudo chown -R postgres: postgres /var/lib/postgresql/9.6/ && sudo chmod -R u = rwX, go = /var/lib/postgresql/9.6/

Pamiętaj, że powinno to być wielkie litery X, a nie bardziej popularne małe litery x, które prawdopodobnie znasz lepiej ze względu na konkretny sposób, w jaki chcesz ustawić te opcje uprawnień do plików. Chociaż potrzebujesz do tego uprawnień administratora, włączenie tych dwóch znaków sudo powinno wystarczyć, aby nadać sobie odpowiednie uprawnienia podczas pracy jako zwykły użytkownik. Jest to ważne, ponieważ Ubuntu i różne implementacje Linuksa wyodrębnione z Ubuntu haszują główne konto root, więc musisz robić rzeczy w ten sposób.

Po zakończeniu tego polecenia możesz ponownie uruchomić usługę przez restart usługi sudo postgresql z terminala i tym razem nie powinieneś mieć żadnych błędów. Gdybyś spojrzał na dziennik, to ostrzeżeń dotyczących problemów z uprawnieniami również nie powinno tam już być.

Jest to błąd, który pojawia się w wyniku dość specyficznych warunków, więc nie powinieneś doświadczać go ponownie po poprawieniu go po raz pierwszy, pod warunkiem, że nie próbujesz ręcznie robić niczego, co wiąże się z manipulowaniem uprawnieniami w katalogach PostgreSQL. Nie ma sytuacji, w której to i tak byłoby naprawdę konieczne, poza naprawieniem tego problemu w pierwszej kolejności.

3 minuty czytania