त्रुटि संदेश के अनुसार, psql
कमांड जो सबसे पहले $PATH
. में दिखाई देता है इसमें /tmp
है हार्ड-कोडेड डिफ़ॉल्ट यूनिक्स सॉकेट निर्देशिका के रूप में।
चूंकि वास्तविक निर्देशिका वास्तव में है /var/pgsql_socket
, आपको डिफ़ॉल्ट पर निर्भर होने के बजाय इसे स्पष्ट रूप से बताना चाहिए:
$ psql -h /var/pgsql_socket [other options]
वही अन्य क्लाइंट-साइड कमांड पर लागू होता है जैसे createdb
, dropdb
, createuser
...
यदि आप -h
निर्दिष्ट नहीं करना चाहते हैं हर बार, इसे PGHOST
. में डाला जा सकता है पर्यावरण चर।
कुछ लोग localhost
. में TCP कनेक्शन का उपयोग करके भी इसे हल करते हैं यूनिक्स सॉकेट निर्देशिका का उपयोग करने के बजाय।
इस समस्या का मूल कारण यह होगा कि मैक ओएस एक्स पर पोस्टग्रेएसक्यूएल स्थापित करने के बाद, सिस्टम पोस्टग्रेज क्लाइंट सेट (libpq
) के दो अलग-अलग उदाहरणों को समाप्त करता है। पुस्तकालय, psql
और अन्य संबद्ध उपयोगिताओं), एक जो MacOS के साथ बंडल किया गया है और दूसरा जो PostgreSQL इंस्टॉलर के साथ आता है।
इसलिए एक और तरीका यह है कि आप अपने $PATH
. को बदल दें ताकि psql
पोस्टग्रेएसक्यूएल के साथ स्थापित सिस्टम के साथ स्थापित एक से पहले चुना जाता है (संभवतः /usr/bin/psql
)।