2012-09-19 18 views
5

मैं निम्नलिखित सेटिंग्स के साथ pgadmin3 में नए सर्वर रजिस्टर करने के लिए कोशिश कर रहा हूँ:pgadmin3: घातक: अध्यक्ष authentification उपयोगकर्ता "postgres" के लिए असफल

Name: postgres 
Host: localhost 
Username: postgres 
Password: <password which works for psql> 
Service: empty or postgres 

लेकिन यह पता चलता त्रुटि:

FATAL: Ident authentification failed for user "postgres" 

मैं पोस्टग्रेस्क्ल सेवा को पुनरारंभ किया है, लेकिन इसका कोई फायदा नहीं हुआ है।

/var/lib/pgsql/data/pg_hba.conf की सामग्री:

# TYPE DATABASE USER  CIDR-ADDRESS   METHOD 

# "local" is for Unix domain socket connections only 
local all   all        trust 
# IPv4 local connections: 
host all   all   127.0.0.1/32   trust 
# IPv6 local connections: 
host all   all   ::1/128    ident 

संपादित करें: उपकरण -> सर्वर विन्यास -> pg_hba.conf निष्क्रिय है।

उत्तर

4

ऐसा लगता है कि PgAdmin-III शायद डिफ़ॉल्ट रूप से आईपीवी 6 से कनेक्ट हो रहा है, इसलिए यह ident लाइन का उपयोग कर रहा है जो स्थानीयहोस्ट, ::1/128 के लिए आईपीवी 6 पते से मेल खाता है।

आप पासवर्ड प्रमाणीकरण का उपयोग करना चाहते हैं, तो आप शायद चाहते हैं:

# IPv4 local connections: 
host all   all   127.0.0.1/32   md5 
# IPv6 local connections: 
host all   all   ::1/128    md5 

मुझे यकीन है कि आप यूनिक्स डोमेन सॉकेट लाइन trust करने के लिए सेट है क्यों नहीं कर रहा हूँ, लेकिन अगर यह सिर्फ एक विकास मशीन है कि शायद ठीक है , तो इसे अपरिवर्तित छोड़ दें। ident (यदि आप यूनिक्स उपयोगकर्ता को पीजी उपयोगकर्ता के समान होना चाहते हैं) या md5 (स्थानीय यूनिक्स सॉकेट पर पासवर्ड ऑथ के लिए) के रूप में यह वास्तव में अधिक सुरक्षित है।

यदि आपको PgAdmin-III को संपादित करने की अनुमति नहीं है तो आपको सीधे टेक्स्ट संपादक में pg_hba.conf संपादित करना होगा। आप P12Admin-III को उपयोगकर्ता postgres के रूप में sudo के माध्यम से चला सकते हैं, लेकिन यह nano या pg_hba.conf संशोधित करने के लिए एक समान कमांड लाइन टेक्स्ट संपादक का उपयोग करने के लिए सुरक्षित (और शायद आसान) है।

पासवर्ड क्योंकि psqlpsql के लिए काम करता होगा, जब तक अन्यथा कहा, एक यूनिक्स डोमेन सॉकेट से कनेक्ट, और आप trust है कि सेट है। आपको शायद लगता है कि आप को psql पर पासवर्ड दे सकते हैं और यह अभी भी काम करेगा, क्योंकि इसे वास्तव में पासवर्ड देने के लिए कभी भी नहीं कहा जा रहा है, यह केवल स्वचालित रूप से भरोसा किया जा रहा है।

2

हां इस प्रकार की त्रुटि प्रत्येक नौसिखिया उपयोगकर्ता द्वारा pgadmin को देखा जाता है। मुझे यह समाधान मिला है और यह मेरे लिए काम करता है।

sudo -u postgres psql 

यह आपके सिस्टम पासवर्ड के लिए पूछेगा और फिर आपको पोस्टग्रेस प्रॉम्प्ट मिलेगा।

और फिर पासवर्ड बदलने के लिए नीचे psql प्रकार कमांड में।

\password 

अब नया पासवर्ड दर्ज करें और इसे फिर से दर्ज करें।

0

PostgreSQL खाता डिबगिंग चरणों (लिनक्स विशिष्ट):

  1. सुनिश्चित करें कि आप वास्तव में यह स्थापित किया है सुनिश्चित करें (सिर्फ ग्राहक, सर्वर भी)।
  2. सुनिश्चित करें कि यह चल रहा है।लेकिन इस कहीं भी हो सकता है - -/var/lib/pgSQL/असंबंधित-उदाहरण /var/lib/pgSQL/डेटा में आमतौर पर -
  3. सुनिश्चित करें कि आप जानते हैं जहां यह है बनाओ। यह देखने के लिए कि कौन सी निर्देशिका (-D तर्क) यह देखने के लिए पोस्टग्रेस प्रक्रिया देखें।
  4. अंतिम चरण से निर्देशिका में pg_hba.conf फ़ाइल को संशोधित करें। मुझे नहीं पता कि यह चरण पोस्टग्रेज़ दस्तावेज में क्यों नहीं है।
  5. विशिष्ट कॉन्फ़िगरेशन को कवर किया गया है उदा। जय और क्रेग रिंगर का जवाब। दोनों आईपीवी 4 और आईपीवी 6 को कॉन्फ़िगर करना सुनिश्चित करें।
  6. सर्वर को पुनरारंभ करें।
  7. परीक्षण करें कि आपकी कॉन्फ़िगरेशन काम करती है। जब तक आप सफलतापूर्वक लॉगिन नहीं कर लेते तब तक 5-7 दोहराएं।
  8. महत्वपूर्ण रुको मत! अब आपको एक और सुरक्षित पासवर्ड विकल्प कॉन्फ़िगर करना चाहिए - पोस्टग्रेस त्वरित स्थानीय सेटअप करने के लिए ठीक हो सकता है, लेकिन आप एलडीएपी, केर्बेरोस, या जीएसएसएपीआई जैसे अधिक सुरक्षित, कॉन्फ़िगर करने योग्य प्रमाणीकरण तंत्र का उपयोग करना चाहते हैं। इसके अतिरिक्त, आप यह सुनिश्चित करना चाहते हैं कि आपके पास SSL चालू है।