स्थानीय PostgreSQL से कनेक्ट नहीं किया जा सकता है


124

मैं अपने स्थानीय विकास के माहौल को बनाने में कामयाब रहा हूं।

मेरे सभी स्थानीय रेल एप्लिकेशन अब त्रुटि दे रहे हैं:

PGError
could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

मुझे नहीं पता कि इसकी वजह क्या है।

एक समाधान की खोज करते हुए मैंने सभी बंडल रत्नों को अपडेट किया है, सिस्टम रत्नों को अपडेट किया है, मैकपोर्ट्स को अपडेट किया है। कोई आनंद नहीं है।

दूसरों ने OSX तेंदुए से शेर को अपग्रेड करते समय इस समस्या की सूचना दी है, इस भ्रम के कारण कि Postgres के किस संस्करण का उपयोग किया जाना चाहिए (यानी, OSX संस्करण या MacPorts संस्करण)। मैं कई महीनों से शेर चला रहा हूं, इसलिए यह अजीब लगता है कि अब ऐसा होना चाहिए।

मैं यह समझने के बिना कि क्या समस्या है, बहुत ज्यादा गड़बड़ करने के लिए अनिच्छुक हूँ। मैं इस तरीके से कैसे डिबग कर सकता हूं?

मैं यह कैसे निर्धारित कर सकता हूं कि मेरे सिस्टम पर PostgreSQL के कितने संस्करण हैं, जिसे एक्सेस किया जा रहा है, और यह कहां स्थित है? यदि गलत PostgreSQL का उपयोग किया जा रहा है तो मैं इसे कैसे ठीक करूं?

Noob सवालों के लिए क्षमा करें। मैं अभी भी सीख रहा हूँ कि यह कैसे काम करता है! किसी भी संकेत के लिए धन्यवाद।

संपादित करें

नीचे दिए गए सुझावों और टिप्पणियों के आधार पर कुछ अपडेट।

मैंने दौड़ने की कोशिश की pg_lsclustersजिसमें command not foundत्रुटि हुई।

मैंने तब अपनी pg_hba.conf फ़ाइल को स्थानीय करने की कोशिश की और इन तीनों नमूना फ़ाइलों को पाया:

/opt/local/share/postgresql84/pg_hba.conf.sample
/opt/local/var/macports/software/postgresql84/8.4.7_0/opt/local/share/postgresql84/pg_hba.conf.sample
/usr/share/postgresql/pg_hba.conf.sample

तो मुझे लगता है कि PSQL के 3 संस्करण स्थापित हैं? Macports, OSX डिफ़ॉल्ट और ???

मैंने इसके बाद लॉन्चटॉक स्टार्टअप स्क्रिप्ट की खोज की ps -ef | grep postgresजो वापस लौट आई

0    56     1   0 11:41AM ??         0:00.02 /opt/local/bin/daemondo --label=postgresql84-server --start-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper restart ; --pid=none
  500   372     1   0 11:42AM ??         0:00.17 /opt/local/lib/postgresql84/bin/postgres -D /opt/local/var/db/postgresql84/defaultdb
  500   766   372   0 11:43AM ??         0:00.37 postgres: writer process                                                                                                                                                                                                                                                                                                                   
  500   767   372   0 11:43AM ??         0:00.24 postgres: wal writer process                                                                                                                                                                                                                                                                                                               
  500   768   372   0 11:43AM ??         0:00.16 postgres: autovacuum launcher process                                                                                                                                                                                                                                                                                                      
  500   769   372   0 11:43AM ??         0:00.08 postgres: stats collector process                                                                                                                                                                                                                                                                                                          
  501  4497  1016   0 12:36PM ttys000    0:00.00 grep postgres

मैंने http://pastebin.com/Gj5TpP62 पर postgresql84-server.wrapper की सामग्री पोस्ट की है ।

मैंने दौड़ने की कोशिश की port load postgresql184-serverलेकिन एक त्रुटि प्राप्त हुई Error: Port postgresql184-server not found

मैं अभी भी बहुत उलझन में हूं कि इसे कैसे ठीक किया जाए, और किसी भी "डमी" बिंदुओं के लिए सराहना की जाए।

धन्यवाद!

EDIT2

डेमोंडो के साथ कुछ समस्याएं होने के बाद यह मुद्दा शुरू हुआ। मेरे स्थानीय रेल एप्लिकेशन एक एप्लिकेशन त्रुटि के साथ क्रैश हो रहे थे "डेमोंडो रत्न नहीं मिल सकता है" की तर्ज पर। मैं तब बंडल अपडेट, मणि अपडेट, पोर्ट अपडेट और ब्रू अपडेट की एक श्रृंखला के माध्यम से गया और इस मुद्दे को खोजने की कोशिश की।

क्या यह त्रुटि डेमोंडो के साथ एक समस्या हो सकती है?


ध्यान दें कि जब आपका ऐप कनेक्ट होता है, तो यह यूनिक्स डोमेन सॉकेट के बजाय टीसीपी पोर्ट के माध्यम से कनेक्ट होता है। इसलिए आपको नेटवर्क कनेक्शन स्वीकार करने के लिए पोस्टग्रेज को कॉन्फ़िगर करने की आवश्यकता है, कम से कम लोकलहोस्ट से।
पॉल टॉम्बलिन

आप ऐसा क्यों मानते हैं? जाहिर है कि ड्राइवर यूनिक्स सॉकेट के माध्यम से जुड़ने की कोशिश कर रहे हैं। हालांकि वे गलत स्थान पर सॉकेट की तलाश करते हैं।
मिलन ए। राडदेव


बिल्कुल सही। यह एक मैक-चीज़ प्रतीत होता है। ओपी -एच ध्वज का उपयोग कर सकता है, यह सत्यापित करने के बाद कि पोस्टमास्टर चल रहा है।
वाइल्डपलासर

कृपया pg_lsclustersऔर अपनी pg_hba.confफ़ाइल का आउटपुट पोस्ट करें ।
tscho

जवाबों:


66

यह वास्तव में एक फ़ाइल अनुमति त्रुटि की तरह दिखता है। यूनिक्स डोमेन सॉकेट फाइलें हैं और किसी अन्य की तरह ही उपयोगकर्ता की अनुमति है। ऐसा लग रहा है कि डेटाबेस का उपयोग करने का प्रयास करने वाले OSX उपयोगकर्ता के पास सॉकेट फ़ाइल तक पहुंचने के लिए फ़ाइल अनुमति नहीं है। इसकी पुष्टि करने के लिए मैंने उबंटू और psql पर कुछ परीक्षण किए हैं ताकि एक ही त्रुटि उत्पन्न करने की कोशिश की जा सके (नीचे शामिल है)।

आपको सॉकेट फ़ाइल और इसकी निर्देशिकाओं /varऔर पर अनुमतियों की जांच करने की आवश्यकता है /var/pgsql_socket। आपके रेल एप्लिकेशन (OSX उपयोगकर्ता) के पास इन निर्देशिकाओं पर अधिमानतः (x) अनुमतियाँ होनी चाहिए (अधिमानतः सभी अनुमतियाँ प्रदान करें) और सॉकेट में पूर्ण अनुमतियाँ (xx) होनी चाहिए। आप ls -lAd <file>इनकी जांच करने के लिए उपयोग कर सकते हैं , और यदि उनमें से कोई भी एक सिमलिंक है, तो आपको फ़ाइल की जांच करने की आवश्यकता है या लिंक बिंदुओं को प्राप्त करना होगा।

आप अपने लिए dir पर अनुमतियाँ बदल सकते हैं, लेकिन सॉकेट को पोस्टग्रेज इन द्वारा कॉन्फ़िगर किया गया है postgresql.conf। यह उसी निर्देशिका में पाया जा सकता है pg_hba.conf(आपको यह पता लगाना होगा कि कौन सा है)। एक बार जब आप अनुमतियाँ सेट कर लेते हैं, तो आपको पोस्टग्रैस्क्ल को पुनः आरंभ करना होगा।

# postgresql.conf should contain...
unix_socket_directory = '/var/run/postgresql'       # dont worry if yours is different
#unix_socket_group = ''                             # default is fine here
#unix_socket_permissions = 0777                     # check this one and uncomment if necessary.

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

मैंने Google पर एक त्वरित खोज की है जिसे आप देखना चाह सकते हैं कि क्या यह मज़बूत है। यह findआपकी कॉन्फ़िग फ़ाइल के विफल होने के किसी भी प्रयास का परिणाम हो सकता है ।

http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html


त्रुटि संदेश:

उपयोगकर्ता pg_hba.conf में नहीं मिला

psql: FATAL:  no pg_hba.conf entry for host "[local]", user "couling", database "main", SSL off

उपयोगकर्ता पासवर्ड पासवर्ड विफल हुआ:

psql: FATAL:  password authentication failed for user "couling"

मिसिंग यूनिक्स सॉकेट फ़ाइल:

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

यूनिक्स सॉकेट मौजूद है, लेकिन सर्वर इसे नहीं सुन रहा है।

psql: could not connect to server: Connection refused
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

यूनिक्स सॉकेट फ़ाइल पर खराब फ़ाइल अनुमतियाँ :

psql: could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

1
इन विचारों के लिए धन्यवाद @couling। यह सही दिशा की तरह महसूस होता है। लेकिन मेरे सेटअप के साथ कुछ बहुत अजीब है। ध्यान रखें कि यह हाल तक पूरी तरह से काम कर रहा है। मैंने अपने सिस्टम पर तीन पोस्टग्रैड निर्देशिकाओं के माध्यम से देखा है, वे सभी conf.sample फाइलें (pg_hba, pg_ident, pg_service, आदि) हैं, लेकिन कोई .conf फाइलें नहीं हैं। यह मामला नहीं होना चाहिए, सही? इसके अलावा जो निर्देशिका होनी चाहिए। .PGSQL.5432 खाली है। इसके बजाय मेरे पास /pStreet/tmp/.s.PGSQL.5432.lock पर स्थित एक फ़ाइल है। PSरिटर्न प्रक्रियाओं को स्थगित कर देता है इसलिए यह चल रहा है। उलझन में!
एंडी हार्वे

मैंने एक अतिरिक्त लिंक जोड़ा है। जहाँ तक मुझे पता है कि आप postgresql.conf के बिना वास्तव में postgresql नहीं कर सकते हैं (भले ही इसका नाम बदल दिया गया हो)। आपका पहला काम यह खोजना होगा।
फिलिप युग्म

1
मेरी निर्देशिकाओं के माध्यम से पता लगाने और सही फ़ाइलों को खोजने में कुछ समय लगा, लेकिन यह वास्तव में मुद्दा था। बहुत विस्तृत जवाब के लिए धन्यवाद। एक बार जब मुझे सही निर्देशिका मिल जाती है, तो मुझे postgresql.conf में सॉकेट निर्देशिका, डेटा निर्देशिका, hba_file और identity_file सेट करने की आवश्यकता होती है। धन्यवाद!
एंडी हार्वे

1
कुछ लोगों की मदद कर सकते हैं: मैंने अपने खाते के तहत पोस्टग्रेज स्थापित करने के लिए काढ़ा का उपयोग किया। मेरे मामले में यह पता चला कि फ़ोल्डर / var / pgsql_socket / का स्वामित्व उपयोगकर्ता _postgres के पास था और स्वामित्व को बदलकर मेरे खाते (डैरेन) ने इस समस्या को ठीक कर दिया। सुनिश्चित नहीं हैं कि ब्रू ने पहली बार इस फ़ोल्डर के स्वामित्व को सही ढंग से सेट क्यों नहीं किया ...?
डैरेन जेन्सेन

शुक्रिया कपलिंग मैं कनेक्ट करने में सक्षम नहीं था और unix_socket_directory को सेट करना सही काम था।
रयान बिग

41

मेरी आंत की भावना यह है कि यह (फिर से) एक मैक / ओएसएक्स-चीज है: फ्रंट एंड और बैक एंड यूनिक्स-डोमेन सॉकेट के लिए एक अलग स्थान मान लेते हैं (जो एक बढ़िया बिंदु के रूप में कार्य करता है )।

चेकलिस्ट:

  • क्या पोस्टग्रेज चल रहा है: ps aux | grep postgres | grep -v grepचाल चलनी चाहिए
  • सॉकेट कहाँ स्थित है: find / -name .s.PGSQL.5432 -ls(सॉकेट में / tmp हुआ करता था; आप वहां देखना शुरू कर सकते हैं)
  • यहां तक ​​कि अगर आप (यूनिक्स-डोमेन) सॉकेट का पता लगाते हैं, तो क्लाइंट एक अलग स्थान का उपयोग कर सकता है। (यह तब होता है जब आप वितरणों को मिलाते हैं, या आपके पास एक वितरण कहीं स्थापित है और किसी अन्य (जैसे स्रोत से) की स्थापना कहीं और है, क्लाइंट और सर्वर के साथ अलग - अलग रेंज़-वूस पते का उपयोग करते हैं।

यदि पोस्टग्रेज चल रहा है, और सॉकेट वास्तव में मौजूद है, तो आप उपयोग कर सकते हैं:

  • psql -h /the/directory/where/the/socket/was/found mydbname

(जो यूनिक्स-डोमेन सॉकेट से कनेक्ट करने का प्रयास करता है)

; अब आपको psql प्रॉम्प्ट प्राप्त करना चाहिए: कोशिश करें \dऔर फिर \qछोड़ दें। आप भी कोशिश कर सकते हैं:

  • psql -h localhost mydbname

(जो लोकलहोस्ट से जुड़ने का प्रयास करता है (127.0.0.1)

यदि अपर्याप्त प्राधिकरण के कारण ये प्रयास विफल होते हैं, तो आप pg_hba.conf (और SIGHUP या पुनरारंभ) को बदल सकते हैं: इस मामले में: लॉग की भी जांच करें।

एक समान प्रश्न: पोस्टग्रेज शुरू नहीं कर सकते

नोट: यदि आप psql प्रॉम्प्ट पर जा सकते हैं, तो इस समस्या का त्वरित समाधान सिर्फ अपना बदलना है config/database.yml, जोड़ना:

host: localhost

या आप जोड़ने की कोशिश कर सकते हैं:

host: /the/directory/where/the/socket/was/found

मेरे मामले में, host: /tmp


1
@wildplasser आपके उत्तर के लिए धन्यवाद। इससे मुझे सही दिशा में शुरुआत मिली, और कूपलिंग के विस्तृत जवाब ने समाधान दिया।
एंडी हार्वे

6
होस्ट जोड़ना: मेरे डेटाबेस के लिए लोकलहोस्ट। मेरी समस्या तय हो गई। धन्यवाद :)
ऑटोमैटिक

1
मेरा / निजी / .... अजीब है। मैंने इसे स्थापित किया, लेकिन इस लैपटॉप में पहले भी समस्याएँ थीं। अजीब। कि database.yml महत्वपूर्ण था!
pjammer

4
अजीब। अपने डेटाबेस में "लोकलहोस्ट" जोड़ना, मैंने भी काम किया लेकिन ऐसा क्यों? मैं पहले नहीं था और सब कुछ ठीक काम कर रहा था। लेकिन मुझे नहीं लगता कि मैंने देर से कुछ भी जोड़ा और अचानक यह पहले से ही ऐसा था। > _ <
सूचकांक

1
मेरे लिए यहाँ ट्रिक सॉकेट का रास्ता था - यह / run not / var / run में था - धन्यवाद!
क्षोदिनेजा

26

Pg gem ( gem uninstall pg) को फिर से अनइंस्टॉल करने की कोशिश करें - यदि आप बंडलर का उपयोग करते हैं, तो bundle install, अन्यथा gem install pg। इसके अलावा, सुनिश्चित करें कि सही संस्करण उठाता है: शेर के पास पॉज़रेस्केल का एक संस्करण है (पूर्व संस्करण नहीं थे) और यह आपके स्थानीय रूप से स्थापित संस्करण (जैसे मैकपोर्ट, होमब्रे) से पहले रास्ते में हो सकता है।

मेरे मामले में: पोस्टग्रैसिकल, अपडेटेड पोस्टग्रैस्कल, रेल्स, आदि के होमब्रेव इंस्टॉल और फिर यह त्रुटि मिली। स्थापना रद्द और pg रत्न को पुनर्स्थापित करना मेरे लिए यह किया।


8
बंडल एग्जिट जेम प्रिस्टिन pg <== भी करेगा ट्रिक
बेन वडिंग

मुझे कोई संदेह नहीं है कि ओपी की त्रुटि किसी भी चीज के कारण हो सकती है, लेकिन यह समाधान है जो मेरे लिए काम करता है।
redhotvengeance

20

सॉकेट फ़ाइल का स्थान संकलन समय पर मणि में पकाया जाता है। इस प्रकार आपको अपने pg रत्न को फिर से बनाने की आवश्यकता है।

gem pristine pg
# or
bundle exec gem pristine pg

यह उस विशेष मुद्दे को हल करना चाहिए।


मुझे इस सवाल में वर्णित समस्या का सामना करना शुरू कर दिया गया था, पोस्टग्रेज को 9.1x से 9.3x तक काढ़ा करने के बाद। इस जवाब ने इसे मेरे लिए ठीक कर दिया (इसलिए मैंने अपने डेटाबेस में 'लोकलहोस्ट' जोड़ दिया। मुझे अच्छा लगा, लेकिन मुझे यह तरीका अच्छा लगा)।
जोशुआ फलागन

16

यदि आपको एक समान त्रुटि मिल रही है:

psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

यह चाल हो सकती है (यह मेरे लिए किया):

initdb /usr/local/var/postgres -E utf8

यदि आप OSX / Brew का उपयोग नहीं कर रहे हैं तो निर्दिष्ट निर्देशिका अलग होनी चाहिए।

नोट: यह ऊपर देखा गया सटीक त्रुटि संदेश नहीं है, लेकिन यह धागा उस त्रुटि संदेश के लिए पहला परिणाम है।


6
मैं हमेशा इस मुद्दे को हर अब और फिर समाप्त करता हूं, लेकिन यह पहली बार है जब मैं इसे इस समाधान के साथ हल करता हूं। साथ ही, rm -fr /usr/local/var/postgresदौड़ने से पहलेinitb
Raf

1
मैंने यह करने के बाद (नील और राफ दोनों के), मुझे "घातक" डेटाबेस मिला त्रुटि मौजूद नहीं है। तो फिर "रेक डीबी: क्रिएट: ऑल" और "रेक डीबी: माइग्रेट" चला और आखिरकार सब कुछ फिर से काम किया।
देबोराह

मुझे भी rm -rf /usr/local/var/postgresतब करना था initdb /usr/local/var/postgres -E utf8। लेकिन सुनिश्चित करें कि जब आप ऐसा करते हैं तो पोस्टग्रैज नहीं चल रहा होता है, अन्यथा निर्देशिका लगभग तुरंत फिर से बन जाती है।
जोश डब्ल्यू लुईस

8

मेरे लिए इस त्रुटि का हल क्या पोस्टमास्टर निर्देशिका में पोस्टमास्टर.पीड नामक फ़ाइल को हटा रहा था। कृपया चरण निर्देश के लिए निम्न लिंक का उपयोग करके मेरा प्रश्न / उत्तर देखें। मेरा मुद्दा फ़ाइल अनुमति से संबंधित नहीं था:

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

इस सवाल का जवाब देने वाले लोगों ने बहुत सारा खेल छोड़ दिया, हालांकि इसके लिए धन्यवाद! मैं सब मैं upvott कर सकता था


चूंकि स्वीकृत उत्तर यहां फ़ाइल अनुमतियों के मुद्दे को नोट करता है, इसलिए यह स्पष्ट प्रतीत होता है कि आपकी पोस्ट और यह संबंधित नहीं हैं।
एंड्रयू नाई

7

इस तरह से मैंने उस त्रुटि संदेश को हल कर दिया, जो कि वाइल्डपलासर के उत्तर पर आंशिक रूप से आधारित है।

find / -name .s.PGSQL.5432 -ls 2> /dev/null
  => ... /tmp/.s.PGSQL.5432

तो, मेरा सॉकेट या जो कुछ भी है, लेकिन ग्राहक इसके लिए देखता है:

/var/run/postgresql/.s.PGSQL.5432

तो बस एक प्रतीकात्मक लिंक बनाने के लिए /tmp/.s.PGSQL.5432:

sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

आशा है कि यह किसी को भी मदद करता है। गलत तरह का लगता है, लेकिन हे, यह काम करता है!


1
इसने मेरे लिए काम किया: sudo ln -s /tmp/.s.PGSQL.5432 /var/pgsql_socket/.s.PGSQL.5432
ardochhigh

थैंक्स :) इससे मदद मिली। लेकिन सिमलिंक बनाने से पहले sudo mkdir /var/run/postgresqlफोल्डर बनाना न भूलें (मेरे मामले में id मौजूद नहीं थी और pg 9.3.X के लिए इंस्टॉलर द्वारा नहीं बनाई गई थी)।
कोवपैक

2
ओह, यह समाधान 'एक बार' समाधान निकला, जिसे मुझे प्रत्येक रिबूट के बाद फिर से करना पड़ा। रेल के लिए मुझे अन्य समाधान मिला है - डेटाबेस कॉन्फिगर फ़ाइल (नीचे उत्तर जोड़ा गया) को संशोधित करें।
कोवपैक

6

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

पहले मैंने पोस्टग्रेज सर्वर शुरू करने की कोशिश की:

postgres -D /usr/local/var/postgres

जो मैंने इस त्रुटि को देखा है

FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 9.0, which is not compatible with this version 9.3.5.

तो फिर मुझे एसओ पर यह जवाब मिला - एक असंगति त्रुटि से संबंधित: /server/342626/how-do-i-upgrad-postgresl-database-incompatibility-error

इसे ही तय किया है

mv /usr/local/var/postgres /usr/local/var/postgres.old
initdb -D /usr/local/var/postgres

4

बस पुष्टि करते हुए कि मैं PSQL और Django पर एक समान मुद्दा था,

ऐसा लग रहा था क्योंकि मेरे psql सर्वर को सही ढंग से बंद नहीं किया गया था और पोस्टमास्टर फ़ाइल में अभी भी पोस्टमास्टर.पीड फ़ाइल मौजूद थी (उचित शटडाउन पर स्वचालित रूप से हटा दी जानी चाहिए)।

यह और सब अच्छा हटा दिया


2
यही मेरे लिए समस्या का हल है। मेरा कंप्यूटर जम गया और मुझे एक कठिन शटडाउन करना पड़ा। जब मैं शुरू कर दिया यह बैक अप लेने, postgres कह रहे थे psql: could not connect to server: No such file or directory.निकाला जा रहा है postmaster.pidसे /usr/local/var/postgresफिर से बनाया सब कुछ काम करते हैं।
रयान एप ने

1
मेरे साथ भी यही हुआ था। मेरा मैक कर्नेल घबराहट के कारण फिर से शुरू हुआ और मुझे काम पर वापस जाने से पहले पोस्टमास्टर को हटाना पड़ा।
बेन

4

मुझे यह एक ही त्रुटि मिल रही थी (यह पता चला कि यह एक त्रुटि थी postmaster.pid। यहां बताया गया है कि मैं कैसे पोस्टग्रेज हो गया और फिर से चल रहा हूं ( फिक्स के लिए रिकार्डो बुरिलो को श्रेय ):

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

यह मेरे लिए काम कर रहा था, हालांकि pg_resetxlogलौटी `लॉक फ़ाइल" पोस्टमास्टर.पिड "मौजूद है।
एलीस

3

जब मैं रेल्स के साथ पोस्टग्रैक्स्ल का उपयोग करने की कोशिश कर रहा था तो मुझे भी ऐसी ही समस्या थी। मणि pg के नए संस्करण का उपयोग करने के लिए मेरे Gemfile को अपडेट करना मेरे लिए इस समस्या को हल करता है। (जेएम पीजी संस्करण 0.16.0 कार्य करता है)। जेमफाइल उपयोग में:

gem 'pg', '0.16.0'

फिर मणि को अद्यतन करने के लिए निम्नलिखित चलाएँ

bundle install --without production
bundle update
bundle install

1
यह मेरे लिए भी मुद्दा तय किया। मैं ०.१५.१ पर रेल्स ४.० बीटा से जा रहा था, और अब रूबी २.०.० का उपयोग कर रहा था। एक बार जब मैंने पीजी 0.16.0 में अपग्रेड किया तो समस्या ठीक हो गई।
bratsche

4.1.0.beta1 पर मेरे लिए समस्या का समाधान किया
एंड्रियास

3

मैंने इस त्रुटि के बारे में कई विषयों को पढ़ा और मेरे लिए इसका समाधान केवल पोस्टग्रेज को पुनः आरंभ करना था:

sudo service postgresql restart

जिसका उल्लेख यहाँ नहीं है।


3
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

मैं थोड़ी देर के लिए समाधान खोज रहा हूं। इसलिए, इसने मेरे लिए इस मुद्दे को ठीक किया (डीबीटी को पुन: लागू करें):

rm -r /usr/local/var/postgres  
initdb /usr/local/var/postgres -E utf8  
pg_ctl -D /usr/local/var/postgres -l logfile start

मैं काढ़ा के साथ OS X 10.11.3 का उपयोग करता हूं।


2

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

फ़ोल्डर पर नेविगेट करें

cd /usr/local/var/postgres

यह देखने के लिए जांचें कि क्या पोस्टमास्टर.पीड मौजूद है

ls

पोस्टमास्टर को हटा दें

rm postmaster.pid

2

मेरे मामले में पिछले समाधानों में से कोई भी अच्छा नहीं था। सॉकेट का उपयोग करने के बजाय, आप Rails config फाइल में TCP host+ portनंबर का उपयोग कर सकते हैं । तो database.ymlफ़ाइल में यहाँ की तरह दो लाइनें जोड़ें:

...
adapter: postgresql
encoding: unicode
pool: 5
host: localhost
port: 5432

इससे मेरी समस्या हल हो गई :)

इससे पहले कि मैं इस तय का इस्तेमाल करता:

sudo mkdir /var/run/postgresql
sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

लेकिन प्रत्येक रिबूट /tmp/.s.PGSQL.5432को हटाने के बाद और मुझे इन आदेशों को दोहराना पड़ा। समाधान काम करता है, लेकिन यह भयानक है, इसलिए बेहतर है कि केवल रेल डेटाबेस विन्यास फाइल को संशोधित करें :)


2

जब मैं Django के साथ Posgtres सेट कर रहा था, तो मुझे यह त्रुटि मिली, मैं बैक ट्रैक का उपयोग कर रहा हूं और यह Postgres स्थापित के साथ आता है। मुझे लगता है कि सेटिंग्स मुद्दा हैं। मैंने इसे पूरी तरह से हटाकर इसे ठीक कर दिया और फिर इसे फिर से स्थापित किया।

sudo apt-get remove postgresql
sudo apt-get purge postgresql

अब चलाएं:

apt-get --purge remove postgresql\*

अपने सिस्टम से सब कुछ PostgreSQL निकालने के लिए। पोस्टग्रेज पैकेज को शुद्ध करना पर्याप्त नहीं है क्योंकि यह सिर्फ एक खाली मेटा-पैकेज है।

एक बार सभी PostgreSQL संकुल हटा दिए जाने के बाद, चलाएँ:

rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
userdel -r postgres
groupdel postgres

अब आपको निम्न कार्य करने में सक्षम होना चाहिए:

apt-get install postgresql

1

यहाँ MacOSX होमब्रेव का उपयोग करते हुए पूर्व-9.1 से 9.1.2 तक मेरे पोस्टरेस्कल इंस्टॉल को अपग्रेड करने के बाद मुझे यही समस्या थी। (वैसे, pg_dump के साथ अपग्रेड करने से पहले डेटाबेस को डंप करना याद रखें, प्री-9.1 डेटाबेस असंगत हैं।) एक ही समस्या, एक ही त्रुटि संदेश।

पीजी रत्न की स्थापना ने मेरे लिए चाल चली। मुझे वास्तव में इस मुद्दे की खोज के लिए काफी नृत्य करना पड़ा। पहले मैंने एक वैश्विक रत्न की स्थापना की, सभी पुराने रत्नों के डेक को साफ़ किया (कुछ थे)। फिर मैंने अपने जेमफाइल से पीजी को हटा दिया, रिबंड किया, पीजी संदर्भ को बहाल किया, और एक बार फिर रिबाउंड किया।

उसके बाद, यह एक आकर्षण की तरह काम करता था।


1

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

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 को सुंदर डेटा-टेबल के रूप में देखने का अच्छा तरीका है

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


0

मुझे यह समस्या हो रही थी, और आगे की जाँच (चल रही rake db:setup) पर, मैंने देखा कि रेल पहले से इस्तेमाल किए गए पोस्टग्रेज उदाहरण से जुड़ने की कोशिश कर रही थी - जो कि DATABASE_URL के रूप में env चर में संग्रहीत किया गया था।

जोड़: unset DATABASE_URL

स्रोत: https://stackoverflow.com/a/17420624/2577622


0

मैंने इस समस्या के अधिकांश समाधानों की कोशिश की, लेकिन कोई काम नहीं कर सका।

मैं भाग गया lsof -P | grep ':5432' | awk '{print $2}'जिसने प्रक्रिया के पीआईडी ​​को दिखाया। हालाँकि मैं इसे मार नहीं सकता था kill -9 <pid>

जब मैंने pkill postgresqlप्रक्रिया को चलाया तो अंत में रुक गया। उम्मीद है की यह मदद करेगा।


0
gem uninstall pg

Homebrew के साथ OS X पर:

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