Popravak: psql: ne može se povezati s poslužiteljem: Nema takve datoteke ili direktorija



Isprobajte Naš Instrument Za Uklanjanje Problema

PostgreSQL se promovira kao najnaprednija platforma za aplikacije baze podataka s otvorenim kodom, a Debian Linux zasigurno ima puno paketa koji ga čine još složenijim. Hrpe paketa za PostgreSQL možete pronaći i ako radite s Ubuntu poslužiteljem ili bilo kojim od različitih Ubuntu okretaja, jer se temelje na Debianovoj jezgri. Ova razina složenosti i razvijenosti čini upozorenja 'nije moguće povezati se s poslužiteljem' i 'nema takve datoteke ili direktorija' još neugodnijim.



Srećom, to su obično jednostavni slučajevi problema s dopuštenjem uzrokovani činjenicom da PostgreSQL želi da se korisnik s imenom postgres zadrži u tim direktorijima. Pomoću jednostavnog trika naredbenog retka to možete popraviti gotovo trenutno. Ipak ćete prethodno htjeti proći nekoliko osnovnih dijagnostičkih provjera samo da biste se uvjerili da je to zapravo problem s kojim se suočavate.



Ispravljanje PostgreSQL-a nije se moglo povezati s pogreškama poslužitelja

Prvo pokušajte ručno ponovo pokrenuti sustav PostgreSQL. Ponekad je to dovoljno da se stvari poprave, a ako ne, barem ćete dobiti poruku o pogrešci s kojom možete raditi. Vjerojatnije je da sustav jednostavno ponovno pokrenete izdavanjem naredbe psql kao postgres korisnik.



Možda ćete otkriti da je ovo sve raščistilo. U suprotnom, mogli biste dobiti redak koji glasi 'psql: nije se moglo povezati s poslužiteljem: Nema takve datoteke ili direktorija', što znači da imate problema s dozvolom. Ako primite ovu poruku o pogrešci, dobit ćete i neki drugi tekst.

Provjerite status usluge ako ste dobili ovu poruku kako biste bili sigurni da su moduli učitani. Trebali bi biti, ali ako nisu, možda biste trebali ponovno pokrenuti. Ako dobijete poruku koja glasi 'Loaded: loaded (/lib/systemd/system/postgresql.service; enabled)', tada se izvode. Probati sudo usluga postgresql ponovno pokretanje samo da napravim kratko ponovno pokretanje i vidim da li to nešto ispravlja. Obično nije, ali možda bi vrijedilo pokušati, ovisno.




Pod pretpostavkom da to nije pomoglo, zavirite u zapisnik PostgreSQL-a kako biste potražili pogreške. U malo vjerojatnom slučaju ako pronađete nešto o pogreškama paketa, možda vam nedostaje jedan od SQL modula. To obično nije uzrok tih problema, ali zasigurno ne može naškoditi barem da se pogleda. Više nego vjerojatno ćete zapravo naići na nešto što vas upozorava da 'Dozvole trebaju biti u = rwx (0700)' i

taj 'direktorij podataka' /var/lib/postgresql/9.6/main 'ima pristup grupi ili svijetu', iako ćete možda vidjeti drugačiji broj verzije, ovisno o tome koji SQL poslužitelj koristite.

To je zato što Debian i slične distribucije očekuju da postgres korisnik i grupa kontroliraju ove direktorije s dozvolama od 0700 i svim datotekama kroz dozvole od 0600 radi sigurnosti. Sve što morate učiniti je pokrenuti sljedeću naredbu na terminalu da biste popravili dozvole:

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

Imajte na umu da bi to trebao biti X, a ne uobičajeni mali s x koji vam je vjerojatno poznatiji zbog specifičnog načina na koji ćete željeti postaviti ove opcije dozvole datoteke. Iako vam za to treba pristup root-u, uključivanje te dvije sudo oznake trebalo bi biti više nego dovoljno za dobivanje odgovarajućih dozvola kada radite kao redoviti korisnik. To je važno jer su Ubuntu i razne implementacije Linuxa odvojile se od Ubuntu-a, raspršili su glavni root račun, pa morate stvari raditi na ovaj način.

Nakon što ova naredba završi, možete ponovo pokrenuti uslugu do sudo usluga postgresql ponovno pokretanje s terminala i ovaj put ne biste trebali imati pogrešaka. Ako biste trebali pogledati zapisnik, tada ni ta upozorenja u vezi s problemima s dozvolama više ne bi trebala postojati.

Ovo je pogreška koja se događa kao rezultat prilično specifičnih uvjeta, pa je ne biste trebali više doživjeti nakon što ste je prvi put ispravili, pod uvjetom da ne pokušavate ručno raditi bilo što što uključuje manipulaciju dozvolama direktorija PostgreSQL. Ne postoji situacija u kojoj bi to ionako zaista trebalo, osim da se taj problem uopće ispravi.

3 minute čitanja