काढ़ा सेवाओं के माध्यम से चल रहे Postgres सर्वर से कनेक्ट नहीं कर सकता


86

मैं इस के लिए एक समाधान के लिए देख रहा हूँ और एक काम कर समाधान नहीं मिल सकता है।

मैंने brew install postgresअपने मैकबुक में काढ़ा ( ) का उपयोग करके पोस्टग्रेज स्थापित किए हैं और मैं वर्तमान में इसे काढ़ा सेवाओं ( brew services list एक चलती सेवा के रूप में पोस्टग्रेज प्रदर्शित करता है) का उपयोग करके चला रहा हूं । हालाँकि, जब मैं चलाने की कोशिश करता हूँ तो मुझे psqlनिम्नलिखित त्रुटि मिलती है।

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

किसी को भी पहले से ही इसी तरह की समस्या हल हो गई है?

जवाबों:


199

मेरे पास एक ही त्रुटि थी और मैंने इसे प्रक्रिया पिड फ़ाइल को हटाकर ठीक किया:

rm -f /usr/local/var/postgres/postmaster.pid


धन्यवाद, यह काम करता है! पर क्यों? कैसे? क्या मैंने इस कमांड को हर रिस्टार्ट के बाद चलाया है?
रैप-२-एच

14
@ rap-2-h ऐसा लगता है कि Postgres को ठीक से बंद नहीं किया जा रहा है। मुझे यह समस्या तब आती है जब मुझे अपने मैक को पावर बटन दबाकर बंद करना पड़ता है।
विल्सन सिल्वा

6
यदि आप विशिष्ट संस्करण के केग का उपयोग करते हैं (उदाहरण: postgresql@9.6) "/ पोस्टग्रेज /" के बजाय सही फ़ोल्डर का उपयोग करना सुनिश्चित करें
Vjatseslav Gedrovits

1
दरअसल यह मैक्रोज़ द्वारा ठीक से बंद नहीं किए जाने से संबंधित है, लेकिन मेरे लिए, यह तब भी हुआ जब मैंने Apple मेनू + "शट डाउन ..." विकल्प का उपयोग किया, इसलिए यह विशेष रूप से बल शट डाउन (अब कम से कम, से संबंधित नहीं है) macOS 10.14.3)। इसने इसे ठीक कर दिया, अंगूठे (y)
सिडऑक

1
यदि यह काम नहीं करता है, तो प्रयास करें tail /usr/local/var/log/postgres.log। यह आपको इस बारे में अधिक जानकारी दे सकता है कि पोस्टग्रेज क्यों विफल हो रहे हैं। आप आमतौर पर उस लॉग से त्रुटि संदेश को Google में पोस्ट कर सकते हैं, और StackOverflow पर एक और फिक्स पा सकते हैं :-D
edan

92

मैं आज इस समस्या में भाग गया। पोस्टग्रैज ने कनेक्शन स्वीकार करना बंद कर दिया हालांकि होमब्रे ने सोचा कि यह चल रहा है।

इसे ठीक करने के लिए मैं भागा,

brew services restart -vvv postgresql

इस कमांड से आउटपुट,

==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
==> Generated plist for postgresql:
   <?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
   <plist version="1.0">
   <dict>
     <key>KeepAlive</key>
     <true/>
     <key>Label</key>
     <string>homebrew.mxcl.postgresql</string>
     <key>ProgramArguments</key>
     <array>
       <string>/usr/local/opt/postgresql/bin/postgres</string>
       <string>-D</string>
       <string>/usr/local/var/postgres</string>
     </array>
     <key>RunAtLoad</key>
     <true/>
     <key>WorkingDirectory</key>
     <string>/usr/local</string>
     <key>StandardErrorPath</key>
     <string>/usr/local/var/log/postgres.log</string>
   </dict>
   </plist>

फिर मैंने सोचा, हम्म उस लॉग फ़ाइल में शायद कुछ है,

tail -n 10 /usr/local/var/log/postgres.log

यकीन है कि पर्याप्त,

[4826] FATAL:  lock file "postmaster.pid" already exists
[4826] HINT:  Is another postmaster (PID 1489) running in data directory "/usr/local/var/postgres"?

इसलिए, मैंने उस फाइल को हटा दिया

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

और सब कुछ फिर से काम करना शुरू कर दिया।


9
मेरे लिए सबसे उपयोगी कमान थीtail -n 10 /usr/local/var/log/postgres.log
Nick Roz

41

मेरे मामले में postmaster.pidफ़ाइल वहाँ भी नहीं थी। यह पोस्टग्रेज को अपग्रेड करके काम कर रहा है।

brew update
brew upgrade

फिर, क्योंकि मैंने 10 से 11 तक प्रमुख संस्करण को अपग्रेड किया था, मुझे भी इसे चलाना था:

brew postgresql-upgrade-database

(स्रोत https://github.com/facebook/react-native/issues/18760#issuecomment-410535381 )


3
इन मामलों में, /usr/local/var/log/postgres.logफ़ाइल में पिछले कुछ लॉग के रूप में यह हो सकता है: FATAL: database files are incompatible with server DETAIL: The data directory was initialized by PostgreSQL version 11, which is not compatible with this version 12.2.
dijonkitchen 21

मुझे यह सटीक समस्या लगी। 11 से 12 तक पोस्टग्रैस्कल से अपग्रेड फेल हो गया, लेकिन फिर से अनइंस्टॉल करने और इंस्टॉल करने से मदद मिली।
FooF

16

मैं यहां विल्सन और ग्रासहॉपर के दो उत्तरों को मिलाऊंगा।

आप फ़ाइल brew services listके स्थान का पता लगाने के लिए पोस्टग्रेज सेवा के लिए प्लिस्ट फ़ाइल की जांच कर सकते हैं और इसे केवल अपने पसंदीदा संपादक में खोल सकते हैं।

आपको StandardErrorPathनिम्न के रूप में सूचीबद्ध मूल्य देखना चाहिए :

<key>StandardErrorPath</key>
<string>/usr/local/var/log/postgres.log</string>

और फिर आपको लॉग फ़ाइल के अंत का उपयोग करके पूंछ करना चाहिए tail -n 100 /usr/local/var/log/postgres.log

मेरे मामले में त्रुटि निम्नलिखित थी:

2017-12-06 11: 51: 16.078 GMT [85476] FATAL: लॉक फ़ाइल "पोस्टमास्टर.पिड" पहले से ही मौजूद है 2017-12-06 11: 51: 16.078 GMT [85476] सुझाव: एक और पोस्टमास्टर (PID 601) चल रहा है डेटा निर्देशिका "/ usr / स्थानीय / var / postgres"?

ऐसा इसलिए था क्योंकि मुझे अपने मैक को बंद करना पड़ा और पोस्टग्रेज को पीआईडी ​​फाइल को साफ करने का मौका नहीं मिला। बस PID फ़ाइल को हटा देंrm /usr/local/var/postgres/postmaster.pid और पोस्टग्रेज शुरू करेंbrew services start postgresql

चेतावनी का एक शब्द: इस पीआईडी ​​फ़ाइल को तब तक न हटाएं जब तक आपको यकीन न हो कि पोस्टग्रैज नहीं चल रहा है । आप इसे चलाकर कर सकते हैं brew services stop postgresqlऔर फिर परिणाम brew services listदिखाने के लिए प्रतीक्षा करना बंद अवस्था में है।


5

मेरे लिए जो काम किया गया था वह /usr/local/var/postgres/फ़ोल्डर को हटा रहा था और फिर फिर से पोस्टग्रेज की स्थापना और स्थापना रद्द कर रहा था


8
ऐसा करने से पहले आपको अन्य प्रतिक्रियाओं की कोशिश करनी चाहिए।
जीन

3

मुझे संस्करण टैप से postgresql93 स्थापित करने में एक ही त्रुटि मिली। brew services list(। ~/Library/LaunchAgents/homebrew.mxcl.postgresql93.plist) के आउटपुट में संकेतित .plist फ़ाइल का निरीक्षण करने पर मुझे निम्नलिखित संदेश मिला:

FATAL: डेटा डायरेक्टरी "/ usr / local / var / postgres" में ग्रुप या वर्ल्ड एक्सेस है।
DISAIL अनुमतियाँ u = rwx (0700) होनी चाहिए।

जिसने मुझे इस उत्तर की ओर अग्रसर किया: डेटा निर्देशिका "/ usr / स्थानीय / var / पोस्टग्रेज" का गलत स्वामित्व है

चलाने के बाद sudo chmod -R 700 /usr/local/var/postgresमुझे एक अलग त्रुटि मिली:

FATAL: निर्देशिका "pg_tblspc" नहीं खोल सका: ऐसी कोई फ़ाइल या निर्देशिका नहीं

जिसके बाद मुझे ले जाया गया: ओएस एक्स के नवीनतम संस्करण (योसेमाइट या एल कैपिटन) की स्थापना के बाद `pg_tblspc` गायब

चलाने mkdir /usr/local/var/postgres/pg_tblspc/के बाद क्लस्टर सफलतापूर्वक शुरू हुआ।


3

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

rm -f /usr/local/var/postgresql@9.6/postmaster.pid

brew services restart postgresql@9.6   

अगर समस्या "लॉक फ़ाइल पोस्टमास्टर के बारे में है तो पुष्टि करने के लिए एरिक कॉर्नर के उत्तर को भी देखें। लॉग फ़ाइल में" पहले से ही मौजूद है।


1

कमांड का उपयोग करके इसे अपडेट करें

  brew postgresql-upgrade-database

यदि आपको निम्न त्रुटि है तो 'काढ़ा' नहीं मिला, लेकिन इसके साथ स्थापित किया जा सकता है: sudo apt install linuxbrew-आवरण

फिर कमांड का उपयोग करके इसे स्थापित करें

 sudo apt install linuxbrew-wrapper

0

मेरे स्वयं के मामले में, postgres.logफ़ाइल में यह शामिल HINT: Is another postmaster already running on port 5432? If not, remove socket file "/tmp/.s.PGSQL.5432" and retry.है सॉकेट फ़ाइल को हटाने और पुनरारंभ करने के बाद, सब कुछ ठीक काम किया। ध्यान दें कि यह एक छिपी हुई फ़ाइल है और विंडो ब्राउज़र के माध्यम से दिखाई नहीं देगी। निष्कासन कमांड लाइन के माध्यम से किया जाना चाहिए।


0

आप libssl / libcrypto संस्करणों का संघर्ष देख रहे होंगे।

brew services start postgres लॉग ने मुझे नाडा दिया, लेकिन मैन्युअल रूप से शुरू pg_ctl -D /usr/local/var/postgres start पर:

अनुपलब्ध परिभाषा _RAND_cleanup in /../openssl/lib/libcrypto.1.0.0.dylib

पर गोली मार दी है:

brew tap-new $USER/old-openssl
brew extract --version=1.0.2t openssl $USER/old-openssl
brew install openssl@1.0.2t

# and then either brew link openssl@1.0.2t or symlink the required files to current openssl
ln -s /usr/local/Cellar/openssl/openssl@1.0.2t/lib/libcrypto.1.0.0.dylib /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib
ln -s /usr/local/Cellar/openssl/openssl@1.0.2t/lib/libssl.1.0.0.dylib /usr/local/opt/openssl/lib/libssl.1.0.0.dylib

0

मामले में अन्य सभी जवाब काम नहीं करते ...

मैं उसी संदेश और स्वीकृत उत्तर को देख रहा था, दौड़ रहा था

rm -f /usr/local/var/postgres/postmaster.pid

काम नहीं किया। न ही किया

rm -f /usr/local/var/postgres@9.6/postmaster.pid याद आने के बाद मैंने एक विशिष्ट संस्करण स्थापित किया था।

मैंने किया cat /usr/local/var/log/postgresql@9.6.logऔर देखा:

FATAL:  lock file "postmaster.pid" already exists
HINT:  Is another postmaster (PID 1231) running in data directory "/usr/local/var/postgresql@9.6"?
> ps aux|grep 1231
[...] /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/libexec/mobileassetd

** सोच चेहरा **

IOS सिम्युलेटर को बंद कर दिया। पोस्टग्रेट्स अपने आप फिर से शुरू हो जाते हैं।

यह एक डेस्कटॉप पर है और हमारे पास कल बिजली थी, इसलिए अन्य जवाबों के आधार पर मुझे संदेह है कि मूल कारण चीजों को साफ करने का मौका दिए बिना कठिन बंद है।

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