2013-02-13 16 views
5

मेरे पास अपनी स्थानीय मशीन में पोस्टग्रेर्स स्थापित हैं।psql: FATAL: भूमिका "पोस्टग्रेस" मौजूद नहीं है (-h localhost विकल्प के साथ)

जब मैं

psql -U postgres -d buzzsumo 

निष्पादित इसे सही ढंग से उपयोगकर्ता postgres करने के लिए अपने पासवर्ड के लिए पूछता।

हालांकि

, जब मैं

psql -U postgres -d buzzsumo -h localhost 

चलाने यह मुझे इस त्रुटि संदेश देता है:

psql: घातक: भूमिका "postgres" मौजूद नहीं है

क्यों है मामला, जब पहले उदाहरण में मैं अपने स्थानीय सर्वर से कनेक्ट कर रहा हूं, जो स्थानीयहोस्ट में गुजरने के बराबर है?

उत्तर

2

आप नहीं कहते हैं, लेकिन मुझे लगता है कि आप मैकोज़ या लिनक्स पर पोस्टग्रेस चला रहे हैं।

पहला फॉर्म (नो-एच के साथ) "यूनिक्स सॉकेट" के माध्यम से जुड़ता है। दूसरा फॉर्म, "-एच लोकहोस्ट" के साथ टीसीपी/आईपी के माध्यम से लोकहोस्ट (आईपी पता 127.0.0.1) से जुड़ता है।

पोस्टग्रेस इन दो प्रकार के कनेक्शनों का अलग-अलग व्यवहार करता है - या कम से कम, यह ऐसा कर सकता है। यदि आप दो प्रकार के कनेक्शन के लिए प्रमाणीकरण तंत्र कॉन्फ़िगर किए गए हैं, तो यह देखने के लिए कि "pgsql/data/pg_hba.conf" फ़ाइल जांचें।

2

आपका पहला उदाहरण यूनिक्स सॉकेट के माध्यम से जुड़ता है, दूसरा टीसीपी/आईपी स्थानीय लूप (लोकलहोस्ट) के माध्यम से।

पहले उदाहरण के लिए, आप pg_hba.conf में कनेक्शन प्रकार local की जरूरत है, दूसरी लाइनों host साथ शुरू करने के लिए प्रासंगिक हैं। आपने कनेक्शन के इन वर्गों के लिए शायद अलग authentication methods परिभाषित किया है।

संबंधित मुद्दे