Remediere: psql: nu s-a putut conecta la server: Nu există un astfel de fișier sau director



Încercați Instrumentul Nostru Pentru Eliminarea Problemelor

PostgreSQL se promovează ca cea mai avansată platformă de aplicații de baze de date open-source, iar Debian Linux are cu siguranță o mulțime de pachete care îl fac și mai complex. De asemenea, puteți găsi încărcături de pachete pentru PostgreSQL dacă lucrați cu Ubuntu Server sau cu oricare dintre diferitele rotiri Ubuntu, deoarece acestea se bazează pe nucleul Debian. Acest nivel de complexitate și dezvoltare face ca „nu s-a putut conecta la server” și „niciun astfel de fișier sau director” să avertizeze mult mai enervant.



Din fericire, acestea sunt de obicei cazuri simple de probleme de permisiune cauzate de faptul că PostgreSQL dorește ca un utilizator numit postgres să păstreze aceste directoare. Utilizând un truc simplu pentru linia de comandă, puteți remedia acest lucru aproape instantaneu. Totuși, veți dori să parcurgeți câteva verificări de diagnostic de bază, pentru a vă asigura că acesta este de fapt problema cu care vă confruntați.



Remedierea PostgreSQL nu s-a putut conecta la erorile de server

Mai întâi, încercați să reporniți manual sistemul PostgreSQL. Uneori, acest lucru este suficient pentru a remedia lucrurile și, dacă nu, cel puțin veți primi un mesaj de eroare de la care să lucrați. Mai mult decât probabil, pur și simplu reporniți sistemul prin emiterea comenzii psql ca utilizator postgres.



S-ar putea să descoperiți că acest lucru a clarificat totul. În caz contrar, s-ar putea să primiți o linie pe care scrie „psql: nu s-a putut conecta la server: nu există un astfel de fișier sau director”, ceea ce înseamnă că aveți probleme cu permisiunea. Dacă primiți acest mesaj de eroare, atunci veți primi și alt text scuipat.

Verificați starea serviciului dacă ați primit acest mesaj pentru a vă asigura că modulele sunt încărcate. Ar trebui să fie, dar dacă nu sunt, este posibil să doriți să reporniți. Dacă primiți un mesaj pe care scrie „Încărcat: încărcat (/lib/systemd/system/postgresql.service; activat)”, atunci acestea rulează. Încerca sudo service postgresql restart doar pentru a face o scurtă repornire și a vedea dacă asta corectează ceva. De obicei nu, dar ar putea merita o încercare în funcție.




Presupunând că nu a ajutat, aruncați o privire în jurnalul PostgreSQL pentru a căuta erori. În cazul puțin probabil că găsiți ceva despre erorile pachetului, atunci s-ar putea să lipsească unul dintre modulele SQL. Aceasta nu este de obicei cauza acestor probleme, dar cu siguranță nu poate fi rău să aruncăm o privire. Mai mult decât probabil, veți întâlni de fapt ceva care vă avertizează că „Permisiunile ar trebui să fie u = rwx (0700)” și

că „directorul de date” /var/lib/postgresql/9.6/main ”are acces la grup sau la lume”, deși este posibil să vedeți un număr de versiune diferit în funcție de serverul SQL pe care îl executați.

Acest lucru se datorează faptului că Debian și distribuții similare se așteaptă ca utilizatorul și grupul postgres să controleze aceste directoare cu permisiuni 0700 și toate fișierele prin permisiuni 0600 din motive de securitate. Tot ce trebuie să faceți este să executați următoarea comandă la terminal pentru a remedia permisiunile:

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

Rețineți că ar trebui să fie un X cu majuscule și nu cel mai obișnuit cu minuscule x, cu care probabil sunteți mai familiarizați, datorită modului specific în care doriți să setați aceste opțiuni de permisiune pentru fișiere. În timp ce aveți nevoie de acces root pentru a face acest lucru, includerea celor două marcaje sudo ar trebui să fie mai mult decât suficientă pentru a vă oferi permisiunile adecvate atunci când rulați ca utilizator obișnuit. Acest lucru este important, deoarece Ubuntu și diferitele implementări Linux derivate de la Ubuntu elimină contul principal rădăcină, deci trebuie să faceți lucrurile în acest fel.

Odată ce această comandă se termină, puteți reporni serviciul din nou prin sudo service postgresql restart de la terminal și nu ar trebui să aveți erori de data aceasta. Dacă ar fi să aruncați o privire la jurnal, atunci nici avertismentele cu privire la problemele de permisiuni nu ar trebui să mai fie acolo.

Aceasta este o eroare care apare ca rezultat al unor condiții destul de specifice, deci nu ar trebui să o experimentați din nou după ce ați corectat-o ​​prima dată, cu condiția să nu încercați să faceți manual ceva care să implice manipularea permisiunilor directorilor PostgreSQL. Nu există nicio situație în care acest lucru ar trebui să fie cu adevărat necesar oricum, în afara corectării acestei probleme în primul rând.

3 minute citite