2013-02-13 29 views
5

ローカルマシンにPostgresがインストールされています。psql:FATAL:ロール "postgres"が存在しません(-h localhostオプション付き)

私は

psql -U postgres -d buzzsumo 

を実行すると、それは正しくpostgresユーザにパスワードを要求します。しかし

、私は

psql -U postgres -d buzzsumo -h localhost 

を実行したときに、それは私にこのエラーメッセージを表示します。

のpsql:FATAL:これはなぜな役割 "Postgresは"

存在しません。最初の例でローカルサーバに接続していますが、localhostを渡すのと同じですか?

答えて

2

あなたは言うつもりはありませんが、私はあなたがMacOSまたはLinux上でpostgresを実行していると思います。

最初の形式(-hなし)は、 "unixソケット"を介して接続します。 2番目の形式は "-h localhost"で、TCP/IP経由でローカルホスト(IPアドレス127.0.0.1)に接続します。

Postgresは、これらの2種類の接続を別々に扱います。少なくとも、そうすることもできます。 "pgsql/data/pg_hba.conf"ファイルをチェックして、2種類の接続にどのような認証メカニズムが設定されているかを確認します。

2

最初の例はUnixソケット経由で接続し、2番目の例はTCP/IPローカルループ(localhost)経由で接続します。

最初の例では、接続タイプlocalpg_hba.confに、第2行目がhostで始まるものが該当します。これらのクラスの接続に異なるauthentication methodsを定義した可能性があります。

関連する問題