psql: सर्वर से कनेक्ट नहीं हो सका: ऐसी कोई फ़ाइल या निर्देशिका (Mac OS X) नहीं


247

अपने मैक को पुनः आरंभ करने पर मुझे खतरनाक पोस्टग्रेज त्रुटि मिली:

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"?

ऐसा इसलिए हुआ क्योंकि एक असंबंधित मुद्दे के कारण मेरी मैकबुक पूरी तरह से खराब हो गई थी और मुझे पावर बटन का उपयोग करके एक हार्ड रिबूट करना पड़ा। रिबूट करने के बाद मैं इस त्रुटि के कारण पोस्टग्रेज शुरू नहीं कर सका।



1
जब आप उत्तर छोड़ देते हैं तो कृपया यह समझाने की कोशिश करें कि यह क्यों हो रहा है, या पोस्टग्रेज सिस्टम कैसे काम करता है, इसलिए हम सभी यादृच्छिक सामान की कोशिश नहीं कर रहे हैं।
निक रेस

6
brew reinstall postgresql stackoverflow.com/a/39781473/6086226 ने मेरे लिए काम किया
Derk Jan Speelman

शराब बनाना फिर से शुरू करना इस मुद्दे को हल करता है
अजय कुमार

जवाबों:


422

चेतावनी: यदि आप पोस्टमास्टर को हटा देते हैं। यह सुनिश्चित किए बिना कि वास्तव में कोई postgresप्रक्रिया नहीं चल रही है, तो आप अपने डेटाबेस को स्थायी रूप से दूषित कर सकते हैं । (यदि पोस्टमास्टर बाहर निकल गया है तो PostgreSQL को स्वचालित रूप से हटा देना चाहिए।)

समाधान: इस मुद्दे को ठीक किया - मैंने इस फ़ाइल को हटा दिया, और फिर सब कुछ काम किया!

/usr/local/var/postgres/postmaster.pid

-

और यहां बताया गया है कि मुझे यह पता लगाना चाहिए कि इसे हटाने की आवश्यकता क्यों है।

  1. मैंने यह देखने के लिए कि क्या कोई पीजी प्रक्रिया चल रही है, निम्न कमांड का उपयोग किया है। मेरे लिए कोई नहीं थे, मैं पीजी सर्वर भी शुरू नहीं कर सकता था:

    ps auxw | grep post
  2. मैंने फ़ाइल के लिए खोज की है .PGSQL.5432 जो ऊपर दिए गए त्रुटि संदेश में थी। मैंने निम्नलिखित कमांड का उपयोग किया:

    sudo find / -name .s.PGSQL.5432 -ls

    यह मेरे पूरे कंप्यूटर को खोजने के बाद कुछ भी नहीं दिखा, इसलिए फ़ाइल मौजूद नहीं थी, लेकिन जाहिर है कि psql"यह चाहता था" या "यह वहां था"।

  3. मैंने अपने सर्वर लॉग पर एक नज़र डाली और निम्नलिखित त्रुटि देखी:

    cat /usr/local/var/postgres/server.log

    सर्वर लॉग के अंत में मुझे निम्नलिखित त्रुटि दिखाई देती है:

    FATAL:  pre-existing shared memory block (key 5432001, ID 65538) is still in use
    HINT:  If you're sure there are no old server processes still running, remove the shared memory block or just delete the file "postmaster.pid".
  4. त्रुटि संदेश में सलाह के बाद, मैंने server.log के समान निर्देशिका में पोस्टमास्टर.पीड फ़ाइल को हटा दिया। इससे समस्या हल हो गई और मैं पुनः आरंभ करने में सक्षम हुआ।

तो, ऐसा लगता है कि मेरी मैकबुक जम गई और हार्ड-रिबूट होने के कारण पोस्टग्रेज को लगा कि यह प्रक्रियाएं रिबूट के बाद भी चल रही हैं। इस फ़ाइल को हटा रहा है। आशा है कि यह दूसरों की मदद करता है! बहुत से लोगों के पास समान मुद्दे हैं, लेकिन अधिकांश जवाबों को फ़ाइल अनुमतियों के साथ करना पड़ा, जबकि मेरे मामले में चीजें अलग थीं।


9
उम्मीद है कि यह जवाब किसी और की मदद करने के लिए समाप्त होता है, और उस व्यक्ति को धन्यवाद देता है जिसने इसे उत्थान किया। मध्यस्थ के बावजूद जिसने इस प्रश्न को एक डुप्लिकेट के रूप में चिह्नित किया है वह अद्वितीय और उपयोगी है। भयानक साइट और साझा करने के लिए यहाँ पर विशेषज्ञों के लिए धन्यवाद ढेर अतिप्रवाह!
फायरड्रैगन 3

2
बस एफडब्ल्यूआईडब्ल्यू, पोस्टमास्टर को हटाना खतरनाक है। आप वास्तव में सुनिश्चित हो गए हैं कि postgresइससे पहले कि आप इसे कर रहे हैं कोई प्रक्रिया नहीं चल रही है।
क्रेग रिंगर

21
बहुत बढ़िया जवाब। केवल संभावित विनाशकारी आदेश के बजाय अपनी पूरी प्रक्रिया को पोस्ट करने के लिए धन्यवाद!
dojosto

3
माना। पोस्टमास्टर.पिड के बारे में उत्तर अच्छा है, लेकिन यदि पोस्टग्रेज चल रहा है, तो यह पता लगाने की प्रक्रिया का प्रत्येक चरण अमूल्य है । धन्यवाद!
क्लिंटन

11
मेरी पोस्टग्रास लॉग ऑन मैक्रोज़ थी /usr/local/var/log/postgres.log
रियंटक

172

उपरोक्त में से किसी ने भी मेरे लिए काम नहीं किया। मुझे निम्नलिखित तरीके से पोस्टग्रेट्स को फिर से स्थापित करना पड़ा:

  • काढ़ा के साथ postgresql की स्थापना रद्द करें: brew uninstall postgresql
  • brew doctor (जो भी यहां है उसे ठीक करें)
  • brew cleanup
  • सभी पोस्टग्रैड फ़ोल्डर निकालें:

    • rm -r /usr/local/var/postgres
    • rm -r /Users/<username>/Library/Application\ Support/Postgres
  • काढ़ा के साथ postgresql को पुनर्स्थापित करें: brew install postgresql

  • प्रारंभ सर्वर: brew services start postgresql
  • अब आपको अपने डेटाबेस बनाने होंगे ... ( createdb)

4
मेरे लिए काम किया, फिर भी मुझे एक वास्तविक डेटाबेस को हटाने की आवश्यकता नहीं थी और आवेदन समर्थन में एक फ़ोल्डर नहीं था। मुझे लगता है कि बिंदु यह था कि कुछ काढ़ा तत्वों को पोस्टग्रेज स्थापित करते समय सिम्बलिंक्स को तोड़ दिया था। उन्हें ठीक करने और पोस्टग्रेज स्थापित करने से समस्या फिर से हल हो गई। धन्यवाद!
कुलबीर

2
न तो यह और न ही शीर्ष उत्तर ने मेरे लिए काम किया, जब तक कि मैं भी नहीं चलाbrew postgresql-upgrade-database
ErikAGriffin

ये मेरे लिए काम कर रहे थे, सिवाय इसके कि मुझे पुराना डेटा डिलीट नहीं करना था।
अमल एंटनी

पुष्टि करने के लिए: यह आपके सभी डेटाबेस को हटा देता है, सही है? मैं सिर्फ एक के साथ प्राप्त करने में सक्षम था brew reinstall postgres, यह पुष्टि करते हुए कि नवीनतम Homebrew Postgres प्रमुख संस्करण संख्या मेरे वर्तमान (टूटे हुए) के समान थी।
जैकब फोर्ड

85

यदि आप macOS पर हैं और होमब्रे के माध्यम से पोस्टग्रेज स्थापित करते हैं, तो इसे पुनः आरंभ करने का प्रयास करें

brew services restart postgresql

यदि आप उबंटू पर हैं, तो आप इसे इनमें से किसी एक कमांड से पुनः आरंभ कर सकते हैं

sudo service postgresql restart

sudo /etc/init.d/postgresql restart

34

हो सकता है कि यह असंबंधित हो लेकिन एक समान त्रुटि तब दिखाई देती है जब आप postgresकिसी बड़े संस्करण का उपयोग करके अपग्रेड करते हैं brew; इसका उपयोग करने brew info postgresqlसे यह पता चला कि इससे मदद मिली:

To migrate existing data from a previous major version of PostgreSQL run:
brew postgresql-upgrade-database

4
इसने मेरे लिए कैटालिना पर 11 से 12 बजे तक काम किया
najajt

1
मेरे लिए भी काम किया
खाली कर दिया

15

यहाँ मेरा तरीका है:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
rm /usr/local/var/postgres/postmaster.pid
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

1
यह मेरे लिए तब काम करता है जब होमबॉव का उपयोग कर पोस्टग्रेज का कोई अन्य स्टॉप / स्टार्ट / रीस्टार्टिंग / रीइंस्टॉल / रीइंस्टॉलिंग नहीं किया गया। धन्यवाद @ स्मार्टवर्ल्ड-डीएम
ब्रैडली

1
यह वह आत्मा है जो मैं हमेशा वापस आता हूं। मैं एक उपनाम जोड़ सकता हूं कि जब मैं fix-my-postgresqlइसे चलाऊंगा तो यह निष्पादित होगा :)
टॉमस के

1
किसी भी विचार मुझे अपने पीसी को रिबूट करने के लिए हर बार क्यों करना पड़ता है?
चरणनाथ

11

यदि आपका postmaster.pidचला गया है और आप पुनः आरंभ या कुछ भी नहीं कर सकते हैं, तो यह करें:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

जैसा कि शुरू में यहाँ बताया गया है


8

नमस्कार दुनिया :)
मेरे लिए सबसे अच्छा लेकिन अजीब तरीका था अगली बातें करना।

1) Postgres93.app या अन्य संस्करण डाउनलोड करें । इस एप्लिकेशन को / एप्लिकेशन / फ़ोल्डर में जोड़ें।

2) फ़ाइल में एक पंक्ति (कमांड ) जोड़ें .bash_profile(जो मेरे होम डायरेक्टरी में है):

निर्यात पथ = / अनुप्रयोग / Postgres93.app / सामग्री / MacOS / बिन /: $ पथ
यह एक पथ से psqlहै Postgres93.app। हर बार कंसोल शुरू होने पर पंक्ति (कमांड) चलती है।

3) फ़ोल्डर Postgres93.appसे लॉन्च करें /Applications/। यह एक स्थानीय सर्वर शुरू करता है (पोर्ट "5432" है और होस्ट "लोकलहोस्ट" है)।

4) इस सारी जोड़तोड़ के बाद मुझे चलाने $ createuser -SRDP user_nameऔर अन्य आदेशों को देखने में खुशी हुई और यह देखने के लिए कि यह काम करता है! Postgres93.appआपके सिस्टम के शुरू होने पर हर बार चलाने के लिए बनाया जा सकता है।

5) इसके अलावा अगर आप अपने डेटाबेस को ग्राफिक रूप से देखना चाहते हैं तो आपको इंस्टॉल करना चाहिए PG Commander.app। यह आपके पोस्ट DB को सुंदर डेटा-टेबल के रूप में देखने का अच्छा तरीका है

बेशक, यह केवल स्थानीय सर्वर के लिए उपयोगी है। मुझे खुशी होगी अगर यह निर्देश दूसरों की मदद करेगा जिन्होंने इस समस्या का सामना किया है।


1
यहां कुंजी आपके पथ (चरण 2) में Postgres जोड़ रही है। इससे मुझे मदद मिली। यदि आपने Homebrew का उपयोग करके पोस्टग्रैस स्थापित किया है, तो आप इसे अपने रास्ते में जोड़ सकते हैं अपने .bash_profile में निम्न पंक्ति जोड़कर: export PATH='/usr/local/Cellar/postgresql/9.4.1/bin/':$PATH- ध्यान रखें कि आपका संस्करण संख्या भिन्न हो सकती है।
टीना

7

इस समस्या के कई स्रोत हैं, और इस प्रकार कई उत्तर हैं। मैंने उनमें से हर एक का अनुभव किया है।

1) यदि आपके पास किसी प्रकार का कोई क्रैश है, तो /usr/local/var/postgres/postmaster.pid फ़ाइल को निकालना संभवत: आवश्यक है क्योंकि पोस्टग्रैस ने इसे ठीक से संभाला नहीं हो सकता है। लेकिन यह सुनिश्चित करें कि कोई प्रक्रिया नहीं चल रही है।

2) क्रेग रिंगर ने अन्य पोस्टों में बताया है कि Apple के पोस्टग्रेक्यूएल के बंडलिंग के कारण पीजी मणि इंस्टॉलेशन समस्याएं होती हैं, जिससे पाथ का वातावरण चर स्थापित करना एक समाधान है।

3) एक और उपाय है, मणि की स्थापना रद्द करना और उसे फिर से स्थापित करना। एक काढ़ा अद्यतन भी आवश्यक हो सकता है।

यदि आप इस पद पर ठोकर खाते हैं, यदि आप किसी एक स्रोत को इंगित कर सकते हैं, तो आप समय की बचत करेंगे ...


3
मुझे खुशी है कि मैंने यह पोस्ट किया। एक और दुर्घटना और जवाब जल्दी से फिर से प्राप्त किया जा सकता है ...
जेरोम

6

मेरे लिए, समाधान केवल मेरे कंप्यूटर को पुनरारंभ करना था। मैंने पहले ब्रू सेवाओं के साथ पुनः आरंभ करने की कोशिश की और जब वह काम नहीं किया, तो पुनः आरंभ करना अगले सबसे अच्छे विकल्प की तरह लग रहा था जिसमें कुछ अधिक शामिल समाधानों को देखने से पहले प्रयास करना था। सब कुछ काम के बाद के रूप में यह होना चाहिए।


5

मैं इसी तरह के मुद्दे का सामना कर रहा था यहाँ मैंने इस मुद्दे को नीचे के रूप में हल किया।

वास्तव में पोस्टग्रेज की प्रक्रिया मृत है, पोस्टग्रेज की स्थिति को देखने के लिए निम्नलिखित कमांड चलाते हैं

sudo /etc/init.d/postgres status

यह कहेगा प्रक्रिया मृत है `प्रक्रिया शुरू करो

sudo /etc/init.d/postgres start

उत्तर के लिए धन्यवाद, आपके उत्तर ने मुझे कुछ संशोधनों के साथ एक ही मुद्दे को हल करने में मदद की: sudo /etc/init.d/postgresql start
Pravitha V

4

मेरे मैक (हाई सिएरा) फ्रेज़ के बाद मेरे साथ ऐसा हुआ और मुझे इसे मैन्युअल रूप से फिर से शुरू करना पड़ा (पावर बटन को दबाए रखें)। मुझे इसे ठीक करने के लिए सभी को साफ करना था।


3

मेरी समस्या समाप्त हो रही है कि मैं गैस मास्क (मैक के लिए एक होस्ट फ़ाइल प्रबंधक) का उपयोग कर रहा था, और मेरे पास होस्ट की गई फ़ाइल में मैं स्थानीयहोस्ट के लिए प्रविष्टि नहीं था।

मैंने कहा:

127.0.0.1 localhost

और इससे मेरी समस्या हल हो गई।


3

मुझे पूरी तरह से यकीन नहीं है कि क्यों, लेकिन मेरे पोस्टग्रेज इंस्टॉलेशन में थोड़ा खराबी आ गई और कुछ फाइलें डिलीट हो गईं जिसके परिणामस्वरूप ओपी दिखाई दे रहा है।

इस तथ्य के बावजूद कि मैं आदेशों को चलाने brew service retart postgresऔर उचित संदेशों को देखने में सक्षम हूं , यह त्रुटि बनी रही।

मैं पोस्टग्रेज के दस्तावेज़ों के माध्यम से गया और पाया कि मेरी फ़ाइल /usr/local/var/postgresपूरी तरह से खाली थी। तो मैं निम्नलिखित भाग गया:

initdb /usr/local/var/postgres

ऐसा लगता है कि उस आदेश के साथ कुछ विन्यास हुए थे।

तब इसने मुझे इसे चलाने के लिए कहा:

postgres -D /usr/local/var/postgres

और कहा कि मुझे एक पोस्टमास्टर। Pid फ़ाइल पहले से मौजूद है।

मुझे बस यह जानने की जरूरत है कि क्या ब्रूफ़ मैं अभी चल रहे कॉन्फ़िगरेशन को लेने में सक्षम होगा, इसलिए मैंने इसका परीक्षण किया।

ls /usr/local/var/postgres

मुझे एक पोस्टमास्टर.पिड फ़ाइल दिखाई गई। मैंने तब किया brew services stop postgresql, और पोस्टमास्टर.पिड फ़ाइल गायब हो गई। फिर मैंने किया brew services start postgresql, और VIOLA, फ़ाइल फिर से प्रकट हुई।

फिर मैं आगे बढ़ा और अपना ऐप चलाया, जो वास्तव में सर्वर को ढूंढता था, हालांकि मेरे डेटाबेस से लगता है।

हालांकि मुझे पता है कि वे बिल्कुल नहीं जा सकते हैं - मैंने जो नया इनिशियलाइज़ेशन किया है उसने एक नया data_area बनाया होगा, और पुराने को इंगित नहीं किया जा रहा है। मुझे यह देखना होगा कि यह कहाँ पर है और इसे वापस इंगित करें या बस फिर से अपने डेटाबेस बनाएँ।

उम्मीद है की यह मदद करेगा! पोस्टग्रोज़ डॉक्स पढ़ने से मुझे बहुत मदद मिली। मुझे उस उत्तर को पढ़ने से नफरत है जो "इस में पेस्ट करें जैसे काम करता है!" क्योंकि मुझे नहीं पता कि क्या हो रहा है और क्यों।


2

इस त्रुटि के कारण कई हैं, इसलिए पहले अपनी लॉग फ़ाइल का पता लगाएं और इसे सुराग के लिए जांचें। यह कम से हो सकता है /usr/local/var/log/postgres.logया /usr/local/var/postgres/server.logया संभवतः कहीं और। यदि आप Homebrew के साथ स्थापित हैं, तो आप स्थान ढूंढ सकते हैं ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist


2

मेरी भी यही समस्या थी। ज्यादातर बार, समस्या यह है कि एक बचे हुए फ़ाइल है

/usr/local/var/postgres/postmaster.pid

जो ज्यादातर लोगों के लिए काम करता है, लेकिन मेरा मामला अलग था - मैंने इस मुद्दे को पिछले 3 घंटे तक टालने की कोशिश की, OSX पर पोस्टरेस्कल को काढ़ा के माध्यम से अनइंस्टॉल किया, डेटाबेस को शुद्ध किया, कुछ भी काम नहीं किया।

अंत में, मैंने देखा कि मुझे शराब बनाने का एक मुद्दा मिला था कि जब भी मैंने कुछ भी स्थापित करने की कोशिश की, तो यह पॉप हो गया:

Error: Permission denied @ rb_sysopen - /private/tmp/github_api_....

या ऐसा कुछ स्थापित करने के अंत में।

मैंने बस किया sudo chmod -R 777 /private/tmpऔर यह अंत में काम करता है!

मैं इसे नीचे लिख रहा हूं क्योंकि यह किसी और के लिए एक समाधान हो सकता है


1

/var/log/ बिल्ली के पास जाओ और चलाओ postgres.log यहां आपको पोस्टग्रेज की विफलता का कारण मिलेगा। यदि यह एक स्मार्ट शट डाउन है तो संभवतः आपका icu4cसंस्करण (यूनिकोड के लिए C ++ लाइब्रेरी) उचित नहीं है जो इसके साथ जुड़ा हुआ है postgres। तो निम्न कमांड चलाएं।

brew upgrade brew cleanup यह काम करना चाहिए;)


होमब्रे को तोड़ने पर brew styleबाद में भागना पड़ सकता brew cleanupहै।
olliezhu

0

मुझे इस समस्या को हल करने के लिए इस पोस्ट को कई बार देखना पड़ा है। एक और फिक्स है, जो अन्य चल रहे कार्यक्रमों के साथ समान मुद्दों पर भी लागू होगा।

मुझे अभी पता चला है कि आप निम्नलिखित दो कमांड का उपयोग कर सकते हैं

$ शीर्ष

यह वर्तमान में चल रही सभी क्रियाओं को उनकी संख्याओं के साथ दिखाएगा। जब आप पोस्टग्रैड्स और संबंधित पीआईडी ​​पाते हैं

$ मार pid_number


0

मुझे अभी वही मुद्दा मिला है क्योंकि मैंने अपनी मशीन ( ubuntu) को अपडेट के लिए रखा है और नीचे त्रुटि हुई है:

सर्वर से कनेक्ट नहीं हो सका: ऐसी कोई फ़ाइल या निर्देशिका नहीं है जो सर्वर स्थानीय रूप से चल रहा है और यूनिक्स डोमेन सॉकेट "/var/run/postgresql/.s.PGSQL.5432" पर कनेक्शन स्वीकार कर रहा है?

अद्यतन करने की प्रक्रिया को पूरा करने के बाद जब मैं अपने सिस्टम की त्रुटि को फिर से शुरू करता हूं। और पहले की तरह इसका काम आकर्षण .. मुझे लगता है कि यह हुआ था क्योंकि पीजी अपडेट हो रहा था और एक और प्रक्रिया शुरू हुई।


0

सुपर न्यू ALERT: मैं सिर्फ वेब डेवलपमेंट सीख रहा हूं और जिस विशेष ट्यूटोरियल का मैं उल्लेख कर रहा हूं वह मैंने पोस्टग्रेज को स्थापित करने के लिए किया है, लेकिन वास्तव में उल्लेख नहीं किया है कि मुझे इसे भी चलाना है ... एक बार मैंने पोस्टग्रेज एप्लिकेशन खोला तो सब कुछ ठीक था और रंगीन मिजाज।


0

@ जगदीश बारबारी के जवाब ने मुझे इस बात का संकेत दिया कि मुझे इसे हल करने की आवश्यकता है। पता चला कि पोस्टग्रैसिकल के दो संस्करण स्थापित थे जबकि केवल एक चल रहा था। सभी पोस्टग्रेजल फ़ाइलों को शुद्ध करना और नवीनतम संस्करण को पुनर्स्थापित करना मेरे लिए इस समस्या को हल करता है।


0

मैंने LD_LIBRARY_PATH से / usr / lib निकाला और यह काम कर गया। मैं डॉकटराइल पोस्टग्रेज में काम कर रहा था: अल्पाइन।

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