Parandus: psql: serveriga ei saanud ühendust luua: sellist faili ega kataloogi pole



Proovige Meie Instrumenti Probleemide Kõrvaldamiseks

PostgreSQL reklaamib ennast kõige arenenuma avatud lähtekoodiga andmebaasirakenduste platvormina ja Debian Linuxil on kindlasti palju pakette, mis muudavad selle veelgi keerukamaks. PostgreSQL-i pakettide paketid leiate ka siis, kui töötate Ubuntu Serveriga või mõne muu Ubuntu keerutusega, kuna need põhinevad Debiani tuumil. See keerukuse ja arengu tase muudab 'ei saanud serveriga ühendust' ja 'sellist faili või kataloogi pole' hoiatused, mis on palju tüütumad.



Õnneks on need tavaliselt lihtsad loa probleemide juhtumid, mis on põhjustatud asjaolust, et PostgreSQL soovib, et postgres nimeline kasutaja neid katalooge kinni hoiaks. Kasutades lihtsat käsurea trikki, saate selle peaaegu koheselt parandada. Siiski peaksite eelnevalt läbima mõned põhilised diagnostilised kontrollid, lihtsalt selleks, et veenduda, et see on tegelikult probleem, mille vastu olete.



PostgreSQL-i parandamine ei saanud serverivigadega ühendust luua

Kõigepealt proovige taaskäivitada PostgreSQL-süsteem käsitsi. Mõnikord piisab sellest asjade parandamiseks ja kui ei, siis saate vähemalt töötava veateate. Enam kui tõenäoline, taaskäivitate süsteemi, väljastades postgres kasutajana käsu psql.



Võib juhtuda, et see tegi kõik klaariks. Vastasel juhul võite saada rea, millel on kiri „psql: ei saanud ühendust serveriga: pole sellist faili ega kataloogi”, mis tähendab, et teil on probleeme lubadega. Kui saate selle veateate, saate ka mõne muu teksti välja sülitada.

Kui olete selle teate saanud, kontrollige teenuse olekut ja veenduge, et moodulid oleksid laaditud. Peaks olema, aga kui pole, võiksite taaskäivitada. Kui saate teate, mille kiri on „Laaditud: laaditud (/lib/systemd/system/postgresql.service; lubatud)”, siis need töötavad. Proovige sudo teenuse postgresql taaskäivitamine lihtsalt selleks, et teha lühike taaskäivitamine ja vaadata, kas see parandab midagi. Tavaliselt see nii ei ole, kuid see võib proovimist väärt olla.




Eeldades, et see pole aidanud, vaadake vigade otsimiseks PostgreSQL-i logi sisse. Ebatõenäolisel juhul leiate midagi paketivigade kohta, siis võib teil puududa üks SQL-i moodulitest. See ei ole tavaliselt nende probleemide põhjus, kuid kindlasti ei saa see vähemalt pilgu heita. Enam kui tõenäoline, et kohtasite midagi, mis hoiatab teid, et „load peaksid olema u = rwx (0700)” ja

et 'andmekataloogil' /var/lib/postgresql/9.6/main 'on juurdepääs rühmale või maailmale', ehkki võite näha erinevat versiooninumbrit sõltuvalt teie kasutatavast SQL-serverist.

Selle põhjuseks on asjaolu, et Debiani ja sarnased jaotused eeldavad, et postgresi kasutaja ja rühm kontrollivad neid katalooge turvalisuse huvides 0700 lubadega ja kõiki faile 0600 lubadega. Lubade parandamiseks peate terminalis käivitama ainult järgmise käsu:

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

Pidage meeles, et see peaks olema suurtäht X, mitte levinum väiketäht x, mis on teile ilmselt rohkem tuttav, kuna soovite konkreetselt neid faililoa suvandeid seada. Kuigi teil on selleks vaja juurjuurdepääsu, peaks nende kahe sudomärgi lisamine olema enam kui piisav, et anda endale tavakasutajana käivitamisel õiged õigused. See on oluline, kuna Ubuntu ja erinevad Linuxi rakendused eraldusid Ubuntu räsi põhirakendusest välja, nii et peate asju tegema nii.

Kui see käsk on lõpule jõudnud, saate teenuse uuesti taaskäivitada sudo teenuse postgresql taaskäivitamine terminalist ja teil ei tohiks seekord ühtegi viga olla. Kui peaksite logi vaatama, siis ei tohiks ka need õiguste probleemidega seotud hoiatused enam seal olla.

See on viga, mis juhtub üsna spetsiifiliste tingimuste tagajärjel, nii et pärast esmakordset parandamist ei tohiks seda uuesti kogeda, kui te ei püüa käsitsi teha midagi, mis hõlmab ka PostgreSQL-i kataloogide õigustega manipuleerimist. Puudub olukord, kus see peaks niikuinii tegelikult vajalik olema, välja arvatud selle probleemi parandamine.

3 minutit loetud