त्वरित समाधान
समस्या यह है कि यह peerआपके वर्तमान उपयोगकर्ता नाम के आधार पर स्थानीय प्रमाणीकरण करने की कोशिश कर रहा है । यदि आप एक पासवर्ड का उपयोग करना चाहते हैं तो आपको होस्टनाम निर्दिष्ट करना होगा -h।
pg_dump dbname -U username -h localhost -F c
व्याख्या
यह आपके में निम्नलिखित के कारण है pg_hba.conf
local all all peer
host all all 127.0.0.1/32 md5
यह बताता है कि Postgres peerस्थानीय उपयोगकर्ताओं के लिए प्रमाणीकरण का उपयोग करता है जिसके लिए अपने वर्तमान सिस्टम उपयोगकर्ता नाम से मेल खाने वाले उपयोगकर्ता नाम की आवश्यकता होती है। दूसरी पंक्ति एक होस्टनाम का उपयोग करके कनेक्शन को संदर्भित करती है और आपको md5विधि के माध्यम से पासवर्ड के साथ प्रमाणित करने की अनुमति देगा ।
मेरा पसंदीदा विकास विन्यास
नोट : यह केवल एकल-उपयोगकर्ता कार्यस्थानों पर उपयोग किया जाना चाहिए। यह एक उत्पादन या बहु-उपयोगकर्ता मशीन पर एक बड़ी सुरक्षा भेद्यता का कारण बन सकता है।
जब एक स्थानीय पोस्टग्रेज उदाहरण के खिलाफ विकसित हो रहा है, तो मुझे अपनी स्थानीय प्रमाणीकरण विधि को बदलना पसंद है trust। यह एक स्थानीय यूनिक्स सॉकेट के माध्यम से पोस्टग्रेज से कनेक्ट करने की अनुमति देगा, जिसमें कोई भी पासवर्ड नहीं है। इसे केवल peerऊपर से बदलकर trustऔर पोस्ट लोडिंग को फिर से लोड करके किया जा सकता है ।
# Don't require a password for local connections
local all all trust