2010-12-30 19 views
16

मैं इस तरह एक उपयोगकर्ता बनाया:PostgreSQL डेटाबेस में प्रवेश नहीं कर सकते

create user blog with password 'blog'; 

तो मैं यह एक डेटाबेस का स्वामी बना दिया:

alter database blog_development owner to blog; 

तो मैं में लॉग इन करने की कोशिश की और यह नहीं था काम नहीं:

$ psql -d blog_development -U blog -W 
Password for user blog: 
psql: FATAL: Ident authentication failed for user "blog" 

कोई विचार क्यों?

एक बात मैं कोशिश की है संपादित कर रहा है pg_hba.conf

76 # Database administrative login by UNIX sockets 
77 local all    postgres       ident 
78 
79 # TYPE DATABASE   USER  CIDR-ADDRESS   METHOD 
80 
81 # "local" is for Unix domain socket connections only 
82 local all    all        ident 
83 # IPv4 local connections: 
84 host all    all   127.0.0.1/32   md5 
85 host blog_development blog  127.0.0.1/32   md5 
86 # IPv6 local connections: 
87 host all    all   ::1/128    md5 

लाइन 85 एक मैं जोड़ा है। मैंने पोस्टग्रेएसक्यूएल को फिर से शुरू किया लेकिन ऐसा कुछ भी नहीं दिख रहा था।

+0

दिलचस्प बात यह है कि मैं pgAdmin III के माध्यम से दूरस्थ रूप से लॉग इन कर सकता हूं ('pg_hba.conf' पर एक और पंक्ति जोड़ने के बाद) लेकिन मैं अभी भी कमांड लाइन से लॉग इन नहीं कर सकता। –

+0

इसके अलावा, मैं एक PHP स्क्रिप्ट के माध्यम से कनेक्ट कर सकते हैं। मुझे लगता है कि मैं गलत तरीके से लॉग इन करने की कोशिश कर रहा हूं। –

उत्तर

31

मैं बस गलत तरीके से कनेक्ट करने की कोशिश कर रहा था।

psql -h localhost -U blog -d blog_development 
+3

हाँ, बिना किसी होस्ट के pgsql स्थानीय यूनिक्स सॉकेट पर लॉग इन करने का प्रयास करता है यानी स्थानीय रेखा से शुरू होने वाली रेखा और पहचान के साथ समाप्त होता है जो कि रास्ते में हो रहा है। –

1

क्या आपने उपयोगकर्ता को pg_hba.conf में जोड़ा है? यहां दस्तावेज है।

http://www.postgresql.org/docs/8.4/static/auth-pg-hba-conf.html

मैं वास्तव में सटीक सिंटैक्स याद नहीं करते हैं लेकिन आप कुछ इस तरह जोड़ना चाहिए:

host blog_development  blog 127.0.0.1/32 md5 

आप को फिर से लोड या सर्वर को पुनः आरंभ ताकि pg_hba.conf पुन: पढ़ने जाता है की आवश्यकता हो सकती।

+0

हम्म। मैंने कोशिश की लेकिन यह काम नहीं लग रहा था। मैंने जो देखा वह देखने के लिए मेरा संपादन देखें। –

5

psql डिफ़ॉल्ट रूप से एक स्थानीय सॉकेट का उपयोग करता है (आदमी में -h ध्वज की जाँच) - जब आप प्रवेश कि लाइन 82 से मेल खाना चाहिए

82 स्थानीय सब सब अध्यक्ष: यहाँ सही तरीका है।

ident के खिलाफ पासवर्ड जांचने के लिए सिस्टम में एक वास्तविक उपयोगकर्ता की आवश्यकता है। तो आप या तो होस्ट द्वारा कनेक्ट कर सकते हैं या उपयोगकर्ता जोड़ सकते हैं ताकि यह आपको नई कॉन्फ़िगरेशन लाइन से मेल खा सके।

+0

या सभी को अन्य सभी पहचानों को स्थानीय रूप से बदलें। –

4

लाइन 82 से पहले,

local blog_development blog md5 

जोड़ सकते हैं और फिर से लोड, या -h localhost का उपयोग कर कनेक्ट।

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