Labojums: psql: nevarēja izveidot savienojumu ar serveri: Nav šāda faila vai direktorija



Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai

PostgreSQL sevi reklamē kā vismodernāko atvērtā koda datu bāzes lietojumprogrammu platformu, un Debian Linux noteikti ir daudz paku, kas to padara vēl sarežģītāku. Ja strādājat ar Ubuntu Server vai kādu no dažādiem Ubuntu griezieniem, jūs varat atrast arī paku paketes PostgreSQL, jo to pamatā ir Debian kodols. Šī sarežģītības un attīstības pakāpe padara “nevar izveidot savienojumu ar serveri” un “nav šāda faila vai direktorija” brīdinājumus, kas ir daudz kaitinošāki.



Par laimi, tie parasti ir vienkārši atļauju problēmu gadījumi, ko izraisa fakts, ka PostgreSQL vēlas, lai lietotājs ar nosaukumu postgres turētos pie šiem direktorijiem. Izmantojot vienkāršu komandrindas triku, jūs to varat novērst gandrīz uzreiz. Tomēr jūs vēlēsities iepriekš veikt dažas pamata diagnostikas pārbaudes, lai tikai pārliecinātos, ka šī ir problēma, ar kuru jūs saskaras.



PostgreSQL labošana nevarēja izveidot savienojumu ar servera kļūdām

Vispirms mēģiniet manuāli restartēt PostgreSQL sistēmu. Dažreiz tas ir pietiekami, lai novērstu problēmas, un, ja nē, tad vismaz saņemsit kļūdas ziņojumu, no kura darboties. Vairāk nekā iespējams, jūs vienkārši restartējat sistēmu, izsniedzot komandu psql kā postgres lietotāju.



Jūs varētu uzskatīt, ka tas visu noskaidroja. Pretējā gadījumā var tikt parādīta rinda ar tekstu “psql: Nevarēja izveidot savienojumu ar serveri: Nav šāda faila vai direktorija”, kas nozīmē, ka jums ir problēmas ar atļaujām. Ja saņemsit šo kļūdas ziņojumu, saņemsiet arī citu tekstu.

Pārbaudiet pakalpojuma statusu, ja esat saņēmis šo ziņojumu, lai pārliecinātos, ka moduļi ir ielādēti. Viņiem vajadzētu būt, bet, ja viņi tādi nav, ieteicams restartēt. Ja saņemat ziņojumu ar tekstu “Ielādēts: ielādēts (/lib/systemd/system/postgresql.service; iespējots)”, tie darbojas. Izmēģiniet sudo pakalpojumu postgresql restartējiet tikai, lai veiktu īsu restartēšanu un redzētu, vai tas kaut ko labo. Parasti tā nav, bet atkarībā no tā varētu būt vērts izmēģināt.




Pieņemot, ka tas nav palīdzējis, ieskatieties PostgreSQL žurnālā, lai meklētu kļūdas. Maz ticams, ka atrodat kaut ko par pakotnes kļūdām, iespējams, trūkst kāda no SQL moduļiem. Parasti tas nav šo problēmu cēlonis, taču tas noteikti nevar kaitēt, lai vismaz paskatītos. Vairāk nekā iespējams, jūs patiešām saskaraties ar kaut ko tādu, kas jūs brīdina, ka “Atļaujām jābūt u = rwx (0700)” un

ka “datu direktorijai“ /var/lib/postgresql/9.6/main ”ir piekļuve grupai vai pasaulei”, lai gan atkarībā no tā, kuru SQL serveri izmantojat, iespējams, redzēsit citu versijas numuru.

Tas ir tāpēc, ka Debian un līdzīgi izplatītāji sagaida, ka drošības nolūkos postgres lietotājs un grupa kontrolē šos direktorijus ar 0700 atļaujām un visiem failiem, izmantojot 0600 atļaujas. Viss, kas jums jādara, ir termināla palaist šādu komandu, lai labotu atļaujas:

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

Paturiet prātā, ka tam vajadzētu būt lielajam burtam X, nevis biežāk izmantotajam mazajam burtam x, kas, iespējams, ir vairāk pazīstams, ņemot vērā īpašo veidu, kādā vēlaties iestatīt šīs faila atļauju opcijas. Lai gan jums ir nepieciešama root piekļuve, lai to izdarītu, šo divu sudo zīmju iekļaušanai vajadzētu būt vairāk nekā pietiekamai, lai dotu sev atbilstošas ​​atļaujas, darbojoties kā parasts lietotājs. Tas ir svarīgi, jo Ubuntu un dažādas Linux ieviešanas reizes no Ubuntu izjauc galveno saknes kontu, tāpēc jums tas jādara šādā veidā.

Kad šī komanda ir pabeigta, varat vēlreiz restartēt pakalpojumu sudo pakalpojumu postgresql restartējiet no termināla, un šoreiz nevajadzētu būt kļūdām. Ja jūs ieskatītos žurnālā, arī šie brīdinājumi par atļauju problēmām vairs nedrīkst būt.

Šī ir kļūda, kas notiek diezgan specifisku apstākļu rezultātā, tāpēc pēc pirmās labošanas to vairs nevajadzētu piedzīvot, ja nemēģināt manuāli darīt neko, kas saistīts ar atļauju manipulēšanu ar PostgreSQL direktorijiem. Nav situācijas, kad tas tik un tā patiešām būtu vajadzīgs, izņemot šīs problēmas novēršanu.

3 minūtes lasīts