2010-12-30 49 views
16

にログインできません働いていない:は、私がこのようなユーザを作成し、PostgreSQLデータベース

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

なぜか?私が試した

ことの一つは、ライン85 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 

を編集している私は追加です。それ以降はPostgreSQLを再起動しましたが、何も変更されていないようです。

+0

興味深いことに、(pg_hba.confに別の行を追加した後で)pgAdmin IIIを使ってリモートログインできますが、コマンドラインからはまだログインできません。 –

+0

また、私はPHPスクリプトを介して接続することができます。私は間違った方法でログインしようとしていると思っています。 –

答えて

31

私はちょうど間違った方法で接続しようとしていました。

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

ええ、-hホストなしpgsqlは、ローカルのUNIXソケットにログインしようとします。つまり、localで始まり​​、identで終わる行が途中で途切れてしまいます。 –

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

Hmm。私はそれを試みたが、それは動作していないようだ。変更した内容を表示するには、編集を参照してください。 –

5

PSQLはデフォルトでローカルソケットを使用しています(男性で-hフラグをチェックしてください) - ログイン時にライン82と一致する必要があり、ローカル

82すべてすべてのident:ここでは正しい方法です。

identは、パスワードを確認するシステムで実際のユーザーが必要です。ホストで接続するか、ユーザーを追加して新しい設定ラインに一致させることができます。

+0

また、ローカルのall all identも同様に変更してください。 –

4

ライン82の前に、

local blog_development blog md5 

を追加し、再ロード、または-h localhostを使用して接続します。

関連する問題