यह वास्तव में एक फ़ाइल अनुमति त्रुटि की तरह दिखता है। यूनिक्स डोमेन सॉकेट फाइलें हैं और किसी भी अन्य की तरह ही उपयोगकर्ता की अनुमति है। ऐसा लगता है कि डेटाबेस तक पहुँचने का प्रयास करने वाले OSX उपयोगकर्ता के पास सॉकेट फ़ाइल तक पहुँचने के लिए फ़ाइल अनुमतियाँ नहीं हैं। इसकी पुष्टि करने के लिए मैंने उबंटू और psql पर कुछ परीक्षण किए हैं ताकि एक ही त्रुटि उत्पन्न करने का प्रयास किया जा सके (नीचे शामिल)।
आपको सॉकेट फ़ाइल और उसकी निर्देशिका /var
. पर अनुमतियों की जांच करने की आवश्यकता है और /var/pgsql_socket
. आपके रेल ऐप (OSX उपयोगकर्ता) के पास इन निर्देशिकाओं पर निष्पादन (x) अनुमतियाँ होनी चाहिए (अधिमानतः सभी को अनुमति दें) और सॉकेट में पूर्ण अनुमतियाँ (wrx) होनी चाहिए। आप ls -lAd <file>
. का उपयोग कर सकते हैं इन्हें जांचने के लिए, और यदि उनमें से कोई एक सिम्लिंक है तो आपको फ़ाइल की जांच करने या लिंक बिंदुओं को डीआईआर करने की आवश्यकता है।
आप अपने लिए डीआईआर पर अनुमतियां बदल सकते हैं, लेकिन सॉकेट को postgresql.conf
में पोस्टग्रेज द्वारा कॉन्फ़िगर किया गया है। . यह उसी निर्देशिका में पाया जा सकता है जैसे pg_hba.conf
(आपको यह पता लगाना होगा कि कौन सा है)। एक बार जब आप अनुमतियां सेट कर लेते हैं, तो आपको postgresql को फिर से शुरू करना होगा।
# 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"?