Psql सर्वर से कनेक्ट नहीं हो सका: ऐसी कोई फ़ाइल या निर्देशिका नहीं, 5432 त्रुटि?


114

मैं psqlअपनी वैग्रंट मशीन पर चलने की कोशिश कर रहा हूं , लेकिन मुझे यह त्रुटि मिली:

psql: could not connect to server: No such file or directory

Is the server running locally and accepting connections on 
Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

ध्यान दें: Vagrant 1.9.2 बॉक्स: ubuntu / Trusty64, https://atlas.hashicorp.com/ubuntu/boxes/trusty64

EDIT कमांड मैंने पोस्टग्रेज स्थापित करने और चलाने के लिए उपयोग किया है:

  • sudo apt-get update
  • sudo apt-get install postgresql
  • sudo su postgres
  • psql -d postgres -U postgres

1
यह मेरे लिए काम करने वाला उत्तर था: askubuntu.com/a/824325/733901
ब्रूनो लौव्म अज़ेरेडो

जवाबों:


156

मेरे पास यही समस्या है, मेरे pg_hba.conf फ़ाइल (स्थित /etc/postgresql/9.6/main) के कॉन्फ़िगरेशन से संबंधित है । कृपया ध्यान दें कि 9.6 मैं उपयोग होने वाला पोस्टग्रैक्स्ल संस्करण है।

त्रुटि स्वयं पोस्टग्रैक्कल की गलत धारणा से संबंधित है, जो सर्वर को शुरू होने से पहले क्रैश करने का कारण बनता है।

मैं इन निर्देशों का पालन करने का सुझाव दूंगा:

  1. प्रमाणित करें कि पोस्टग्रैस्कल सेवा चल रही है, उपयोग कर रही है sudo service postgresql start
  2. pg_lsclustersअपने टर्मिनल से चलाएं
  3. जांचें कि आप कौन सा क्लस्टर चला रहे हैं, आउटपुट कुछ इस तरह होना चाहिए:

    संस्करण - क्लस्टर पोर्ट स्थिति मालिक डेटा निर्देशिका

    9.6 ------- मुख्य - 5432 ऑनलाइन पोस्टग्रेज / /वार / लिब / पोस्टग्रैसेकल / 9.6/main

    '---' संकेतों की अवहेलना करें, क्योंकि उनका उपयोग केवल संरेखण के लिए किया जा रहा है। महत्वपूर्ण जानकारी संस्करण और क्लस्टर हैं। आप यह भी देख सकते हैं कि सर्वर स्टेटस कॉलम में चल रहा है या नहीं।

  4. संस्करण और क्लस्टर से जानकारी कॉपी करें, और इस तरह का उपयोग करें: pg_ctlcluster <version> <cluster> startइसलिए, मेरे मामले में, संस्करण 9.6 और क्लस्टर 'मुख्य' का उपयोग करना, यह होगाpg_ctlcluster 9.6 main start
  5. यदि कुछ गलत है, तो postgresql एक लॉग उत्पन्न करेगा, जिस पर पहुँचा जा सकता है /var/log/postgresql/postgresql-<version>-main.log, इसलिए मेरे मामले में, पूर्ण कमांड होगा sudo nano /var/log/postgresql/postgresql-9.6-main.log
  6. आउटपुट को दिखाना चाहिए कि त्रुटि क्या है।

    2017-07-13 16:53:04 BRT [32176-1] लॉग: अमान्य प्रमाणीकरण विधि "सभी"
    2017-07-13 16:53:04 BRT [32176-2] संपर्क : कॉन्फ़िगरेशन फ़ाइल की लाइन 90 "/ आदि /postgresql/9.5/main/pg_hba.conf "
    2017-07-13 16:53:04 BRT [32176-3] FATAL: pg_hba.conf लोड नहीं कर सका

  7. त्रुटियों को ठीक करें और postgresql सेवा को फिर से शुरू करें sudo service postgresql restartऔर यह ठीक होना चाहिए।

मैंने इसे खोजने के लिए बहुत खोज की है, इस पोस्ट का श्रेय जाता है ।

शुभकामनाएँ!


1
बहुत बढ़िया गाइड। व्यापक व्याख्याओं से भरा हुआ!
सलाथील गेनसे

37

मेरे पास एक ही मुद्दा था लेकिन यहाँ गैर जवाब ने मदद की।

मैंने इसे कैसे तय किया (मैक)

  • के साथ postgresql शुरू करने का प्रयास करें pg_ctl -D /usr/local/var/postgres start
  • त्रुटि संदेश के लिए देखो जो कुछ कहता है FATAL: could not open directory "pg_tblspc": No such file or directory
  • उस लापता निर्देशिका को बनाएं mkdir /usr/local/var/postgres/pg_tblspc
  • चरण एक से दोहराएँ जब तक आप सभी लापता निर्देशिकाएँ नहीं बनाई हैं
  • जब किया और फिर पोस्टग्रैसक्ल को फिर से शुरू करने की कोशिश कर रहा है तो यह कह सकता हैFATAL: lock file "postmaster.pid" already exists
  • पोस्टमास्टर हटाएं :rm /usr/local/var/postgres/postmaster.pid
  • के साथ पोस्टग्रेज शुरू करें: pg_ctl -D /usr/local/var/postgres start
  • हो गया ✨

13

मैं इसे केवल किसी ऐसे व्यक्ति के लिए पोस्ट कर रहा हूं जो खोया हुआ और निराशाजनक महसूस कर रहा है जैसा कि मैंने यह प्रश्न पाया। ऐसा लगता है कि कभी-कभी कुछ psotgresql-related config फ़ाइलों को संपादित करके, कोई गलती से फ़ाइल की अनुमतियाँ बदल सकता है:

यहां छवि विवरण दर्ज करें

ध्यान दें कि कैसे pg_hba.conf रूट का है, और उपयोगकर्ता इसे पढ़ भी नहीं सकते हैं। यह पोस्टग्रेट्स को इस फ़ाइल को खोलने में सक्षम नहीं होने का कारण बनता है और इसलिए मूल प्रश्न में देखी गई त्रुटि को फेंकते हुए, सर्वर को शुरू करने में सक्षम नहीं होता है।

चलाकर

sudo chmod +r pg_hba.conf

मैं इस फाइल को एक बार फिर से पोस्टग्रेज उपयोगकर्ता के लिए और फिर चलने के बाद सुलभ बनाने में सक्षम था

sudo service postgresql start

सर्वर को फिर से चलाने में सक्षम था।


हां, यह मेरी समस्या थी, और यह लॉग में इंगित नहीं किया गया था (या अगर यह मुझे समझ में नहीं आया था)।
इएम्ज़ सिप

बिल्कुल नहीं, मेरे साथ क्या हुआ, लेकिन किसी कारण से NETWORK SERVICE ने पूरी निर्देशिका संरचना में विशेषाधिकार खो दिए। इस उत्तर ने मुझे सही दिशा में आने का संकेत दिया।
ब्रैड मैथ्यूज

5

क्या /etc/postgresql/9.6/main/postgresql.confउस पोर्ट को शो किया जा रहा है? मेरे डिफॉल्ट Xubuntu Linux इंस्टॉल पर, माइन ने पोर्ट = 5433 को किसी कारण के लिए सबसे अच्छा दिखाया जैसा कि मुझे याद है, लेकिन मैंने उसी फ़ाइल में लाइन को कमेंट किया जिसमें कहा listen_addresses = 'localhost'गया था और लाइन को अनइंस्टॉल किया गया था listen_addresses = '*'। तो शायद शुरू करें और वहां जांचें। उम्मीद है की वो मदद करदे।


4

कमांड का उपयोग करें:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

9
क्या यह पूरे डेटाबेस को नहीं हटाता है? मुझे लगता है कि चेतावनी का एक शब्द क्रम में होगा।
d33tah

1
धन्यवाद @ टकर वाट्स और @ गौरव वर्मा। मैंने दोनों समाधानों को आज़माकर अपनी समस्या को हल किया और इस कमांड को जोड़ा pg_ctl -D /usr/local/var/postgres -l logfile start
नियोंगबाओ

4

यह मेरे लिए काम करता है:

pg_ctl -D /usr/local/var/postgresql@9.6 stop;
brew services stop postgresql@9.6;
brew services start postgresql@9.6;

4

इन दो चरणों ने मैक पर मेरे लिए इसे हल किया:

rm /usr/local/var/postgres/postmaster.pid
brew services restart postgresql

संपादित करें:

यदि आप इस समस्या का सामना करते हैं (@ luckyguy73 द्वारा रिपोर्ट): psql: FATAL: database "postgresql" does not exist

तुम दौड़ सकते हो

brew postgresql-upgrade-database

ठीक करना।


धन्यवाद आदमी, मैं आपके निर्देशों का पालन करते हुए एक घातक से कनेक्ट नहीं कर सकता: "psql: FATAL: डेटाबेस" पोस्टग्रैस्कल "मौजूद नहीं है"
luckyguy73

हुह अजीब, यह हमेशा मेरे लिए काम करता है। क्या आपने इसे हल करने का प्रबंधन किया?
निकोप

कोई चिंता नहीं, यह वास्तव में ठीक निकला। मैं बस 'काढ़ा postgresql- अपग्रेड डेटाबेस' भागा और वह चाल चली, धन्यवाद
luckyguy73

1
खुशी है कि आपने इसे ठीक कर दिया! यदि आपको कोई आपत्ति नहीं है, तो मैं उस उत्तर को भी जोड़ दूंगा, यदि किसी और को भी इसी मुद्दे का सामना करना पड़े। धन्यवाद
nicodp

3

ज़श के भीतर:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

यह केवल एक चीज है जिसने अनगिनत घंटों की परेशानी के बाद मेरे लिए काम किया।


2

अपना डेटाबेस मैनेजर खोलें और इस स्क्रिप्ट को निष्पादित करें

update pg_database set datallowconn = 'true' where datname = 'your_database_name';

2

मेरे साथ भी ऐसा ही हुआ क्योंकि मैंने /etc/hostsफाइल में कुछ बदल दिया था । इसे वापस बदलने के बाद इसने 127.0.0.1 localhostमेरे लिए काम किया।


2

बस सीधा संस्करण के साथ अपने pgsql को पुनर्स्थापित करें apt-get install postgresql-9.5 (u नए को स्थापित करने से पहले पैकेज को हटा देना चाहिए)



2

मेरे मामले में यह लॉकफ़ाइल postmaster.idथा जिसे अंतिम सिस्टम क्रैश के दौरान ठीक से हटाया नहीं गया था जो समस्या का कारण बना। इसे हटाने sudo rm /usr/local/var/postgres/postmaster.pidऔर पोस्टग्रेज को पुनः आरंभ करने से समस्या हल हो गई।


1

जब वीएम में SQL db बनाते हैं तो मुझे वही त्रुटि थी। मैंने shared_buffers = 200MBअपने कुल RAM का 75% /etc/postgresql/9.3/main/postgresql.conf का डिफ़ॉल्ट मान बदल दिया है । खैर, मैं वास्तव में VM में उस RAM को आवंटित करना भूल गया। जब मैंने नया डेटाबेस बनाने की आज्ञा दी, तो मुझे वही त्रुटि मिली।

संचालित, बच्चे को अपनी बोतल (रैम) और प्रेस्टो दिया, यह काम किया।


1

मुझे यह त्रुटि तब हुई जब मैंने अपने डेटाबेस को अंतिम pg_basebackup बैकअप फ़ाइल से पुनर्स्थापित किया। उसके बाद जब मैंने डेटाबेस (psql) को जोड़ने की कोशिश की, तो मुझे वही त्रुटि मिल रही थी। त्रुटि हल हो गई, जब मैंने pg_hba.conf फ़ाइल को अपडेट किया और जहाँ भी "सहकर्मी" प्रमाणीकरण था, मैंने उसे "md5" से बदल दिया और फिर पोस्टग्रेज सेवाओं को पुनः आरंभ किया। उसके बाद, समस्या का समाधान किया गया था।


1

मुझे कुछ समय पहले ऐसी ही समस्या हुई थी। 5 से अधिक सुझावों की कोशिश करने के बाद मैंने मूल बातों पर वापस जाने और शुरुआत करने का फैसला किया। जिसका मतलब था मेरे पोस्टग्रैक्स्ल इंस्टॉलेशन को हटाना और पोस्टग्रैसक्ल को फिर से इंस्टॉल करने पर इस गाइड का पालन करना। https://help.ubuntu.com/lts/serverguide/postgresql.html


1

यह त्रुटि मेरे साथ तब हुई जब मेरे मैक मिनी बिना प्लग किए (इसलिए मजबूर शटडाउन) हो गए, और मुझे इसे ठीक करने के लिए सब करना पड़ा।


1

मेरा सुझाव है कि आपको उस पोर्ट को स्पष्ट करना चाहिए जो पोस्टग्रेज करता है। मेरे मामले में मुझे नहीं पता था कि कौन सा पोर्ट पोस्टग्रेज चल रहा है।

lsof -i | grep 'post'

तब आप जान सकते हैं कि कौन सा पोर्ट सुन रहा है।

psql -U postgres -p "port_in_use"

पोर्ट विकल्प के साथ, उत्तर हो सकता है। आप psql का उपयोग कर सकते हैं।


1

मैं कभी-कभी एक ही मुद्दा है, लेकिन ज्यादातर macOS उन्नयन के बाद। शट डाउन करना और नए संस्करण में माइग्रेट करना आमतौर पर मेरे लिए इसे ठीक करता है (आपके संस्करण के अनुसार परिवर्तन करें)। इसलिए सबसे पहले अपने पोस्टग्रैक्स्ल को अपग्रेड करें

brew services stop postgresql@12
brew services start postgresql@12
brew postgresql-upgrade-database

यह ज्यादातर एक अस्थायी सुधार है, लेकिन जब से मुझे मेरे लिए इस काम का बेहतर समाधान नहीं मिला।


काढ़ा postgresql-उन्नयन-डेटाबेस है क्या अंत में मेरे लिए काम करने के बाद मैं और सब कुछ करने की कोशिश की
luckyguy73

1

यदि उपरोक्त उत्तरों में से कोई भी आपके लिए काम नहीं कर रहा है, तो कृपया इसे आज़माएं,

कई लोगों ने इस समस्या के कई समाधानों का उल्लेख किया है! लेकिन उन सभी को है कि भूल गया, एक ही समस्या पैदा होगा आपके डिस्क पर्याप्त जगह या स्थान आप के लिए आवंटित कर रहे हैं की जरूरत नहीं है जब postgresभरा हुआ है

अपने सिस्टम भंडारण की जाँच करें, अगर इसकी पूरी जगह कुछ खाली है! फिर अपने पोस्टग्रेज को फिर से शुरू करें sudo service postgresql restartया स्टॉप करें और sudo service posgresql stopफिर शुरू करेंsudo service postgresql start

यह इस मुद्दे को हल करेगा, यह मेरे लिए हल हो गया


0

मैं अपने मैक पर 11 पोस्टग्रेज के साथ एक ही मुद्दा है। मुझे यह त्रुटि हर बार पुनरारंभ होने के बाद मिलती है

psql: could not connect to server: No such file or directory

Is the server running locally and accepting connections on 
Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

एक अस्थायी सुधार के रूप में

brew services stop postgresql@11
brew services start postgresql@11
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.