Javítás: psql: nem sikerült csatlakozni a szerverhez: Nincs ilyen fájl vagy könyvtár



Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére

A PostgreSQL a legfejlettebb nyílt forráskódú adatbázis-alkalmazásplatformként hirdeti magát, és a Debian Linux minden bizonnyal rengeteg csomaggal rendelkezik, amelyek még bonyolultabbá teszik. Ha a Ubuntu Server vagy az Ubuntu különféle pörgetői közül bármelyiket használja, akkor a PostgreSQL csomagjaihoz csomagokat is találhat, mivel ezek a Debian magján alapulnak. Ez a bonyolultsági és fejlettségi szint sokkal bosszantóbbá teszi a „nem tudtam csatlakozni a szerverhez” és a „nincs ilyen fájl vagy könyvtár” figyelmeztetéseket.



Szerencsére ezek általában egyszerű esetek az engedélyezési problémákra, amelyeket az okoz, hogy a PostgreSQL azt akarja, hogy egy postgres nevű felhasználó ragaszkodjon ezekhez a könyvtárakhoz. Egy egyszerű parancssori trükk segítségével ezt szinte azonnal kijavíthatja. Előzetesen érdemes átnéznie néhány alapvető diagnosztikai ellenőrzést, csak azért, hogy megbizonyosodjon arról, hogy valójában ezzel a problémával áll szemben.



A PostgreSQL javítása nem tud kapcsolódni a kiszolgáló hibákhoz

Először próbálja meg újraindítani a PostgreSQL rendszert kézzel. Néha ez elég a dolgok kijavításához, és ha nem, akkor legalább hibaüzenetet kap, amelyből működik. Valószínűleg egyszerűen újraindítja a rendszert azzal, hogy kiadja a psql parancsot postgres felhasználóként.



Lehet, hogy ez mindent tisztázott. Ellenkező esetben előfordulhat, hogy olyan sort kap, amely a következőt írja: „psql: nem sikerült csatlakozni a szerverhez: Nincs ilyen fájl vagy könyvtár”, ami azt jelenti, hogy engedélyezési problémái vannak. Ha ezt a hibaüzenetet kapja, akkor kap még egy másik szöveget is.

Ha megkapta ezt az üzenetet, ellenőrizze a szolgáltatás állapotát, hogy megbizonyosodjon arról, hogy a modulok betöltődtek Kell, de ha nem, akkor érdemes újraindítani. Ha olyan üzenetet kap, amely a következőt írja: „Betöltött: betöltve (/lib/systemd/system/postgresql.service; engedélyezve)”, akkor futnak. Próbáld ki sudo service postgresql indítsa újra csak egy rövid újraindítás elvégzésére, és hátha ez kijavít valamit. Általában nem, de ettől függően érdemes lehet kipróbálni.




Feltéve, hogy ez nem segített, nézzen utána a PostgreSQL naplónak, és keresse meg a hibákat. Abban a valószínűtlen esetben, ha talál valamit a csomaghibákról, akkor hiányozhat az egyik SQL modul. Ezeknek a problémáknak általában nem ez az oka, de biztosan nem árt, ha legalább megnézzük. Valószínűleg találkozik valamivel, amely arra figyelmeztet, hogy „Az engedélyeknek u = rwx (0700) kell lennie”

hogy az „/var/lib/postgresql/9.6/main” adatkönyvtárnak van csoport- vagy világhozzáférése ”, bár előfordulhat, hogy más verziószámot lát, attól függően, hogy melyik SQL szervert futtatja.

Ennek oka, hogy a Debian és a hasonló disztribúciók arra számítanak, hogy a postgres felhasználó és csoport a biztonsági okokból 0700 jogosultsággal és az összes fájl 0600 jogosultsággal vezérli ezeket a könyvtárakat. Mindössze annyit kell tennie, hogy a következő parancsot futtatja a terminálon az engedélyek kijavításához:

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

Ne feledje, hogy nagybetűnek kell lennie X-nek, és nem a leggyakoribb kisbetűknek, amelyeket valószínűleg jobban ismer, a fájlengedély-opciók beállításának sajátos módja miatt. Noha ehhez root hozzáférésre van szükséged, ennek a két sudo jelnek a beillesztésének többnek kell lennie ahhoz, hogy rendes felhasználóként futtassa a megfelelő engedélyeket. Ez fontos, mivel az Ubuntu és a különféle Linux-megvalósítások az Ubuntu-ból elszakadtak, kivonatolták a fő gyökérfiókot, így a dolgokat így kell tennie.

Miután ez a parancs befejeződött, a következővel újraindíthatja a szolgáltatást sudo service postgresql indítsa újra a terminálról, és ezúttal nem szabad hibáznia. Ha megnézné a naplót, akkor az engedélyekkel kapcsolatos problémákra vonatkozó figyelmeztetések sem lehetnek tovább.

Ez egy olyan hiba, amely meglehetősen meghatározott feltételek eredményeként következik be, ezért nem szabad újra tapasztalnia az első javítás után, feltéve, hogy nem próbál meg manuálisan megtenni semmit, ami a PostgreSQL könyvtárak jogosultsági manipulációjával jár. Egyébként nincs olyan helyzet, ahol erre valóban szükség lenne, azon kívül, hogy ezt a problémát elsősorban kijavítanánk.

3 perc olvasás