"पीयर ऑथेंटिकेशन" का अर्थ है कि यह एक यूनिक्स सॉकेट का उपयोग कर रहा है और कनेक्टिंग यूनिक्स उपयोगकर्ता से पोस्टग्रेस्क्ल उपयोगकर्ता नाम के समान यूनिक्स उपयोगकर्ता नाम की अपेक्षा कर रहा है।
चूंकि आपका स्थानीय यूनिक्स उपयोगकर्ता नाम funkdified
. है और आप उपयोगकर्ता के रूप में कनेक्ट करने का प्रयास कर रहे हैं goodsounds
एक यूनिक्स डोमेन सॉकेट पर (local
) कनेक्शन जहां आपका pg_hba.conf
peer
निर्दिष्ट करता है प्रमाणीकरण, Pg आपके कनेक्शन प्रयास को सही ढंग से अस्वीकार करता है।
यूनिक्स सॉकेट का उपयोग करते समय कई इंस्टॉल के लिए यह डिफ़ॉल्ट व्यवहार है।
आप कर सकते हैं:
- अपने डेटाबेस कनेक्शन सेटिंग में होस्टनाम निर्दिष्ट करके TCP/IP के माध्यम से कनेक्ट करें;
- संपादित करें
pg_hba.conf
md5
. का उपयोग करने के लिएpeer
. के बजाय पासवर्ड प्रमाणीकरण यूनिक्स सॉकेट के लिए प्रमाणीकरण (local
कनेक्शन प्रकार) तो पीजी पासवर्ड प्रमाणीकरण स्वीकार करता है; या - अपने यूनिक्स उपयोगकर्ता नाम के समान PostgreSQL उपयोगकर्ता नाम से कनेक्ट करें और यदि यह अभी तक मौजूद नहीं है तो PostgreSQL में उपयोगकर्ता बनाएं।
pg_hba.conf
. के लिए दस्तावेज़ देखें और दस्तावेज़ीकरण का शेष क्लाइंट प्रमाणीकरण अध्याय।
ध्यान दें कि pg_hba.conf
. में बदल जाता है तुरंत प्रभावी न हों, आपको इसे फिर से पढ़ने के लिए pg_hba.conf
के लिए पुनरारंभ करना होगा या कम से कम PostgreSQL को पुनः लोड करना होगा ।
ओह, इसके अलावा, यदि आपके पास कई PostgreSQL संस्करण स्थापित हैं, तो आपके पास एक संस्करण से एक libpq और दूसरे से एक सर्वर हो सकता है। इस मामले में सुनिश्चित करें कि यूनिक्स सॉकेट के लिए स्थान जो डिफ़ॉल्ट रूप से libpq से जुड़ता है वह सर्वर के unix_socket_directories
के समान है या इसे ओवरराइड करें (उदा.) host=/tmp
आपके कनेक्शन स्ट्रिंग में।