2013-02-13 87 views
5

我在本地機器上安裝了Postgres。psql:FATAL:角色「postgres」不存在(使用-h localhost選項)

當我執行

psql -U postgres -d buzzsumo 

它正確地詢問我的密碼給用戶的Postgres。

然而,當我運行

psql -U postgres -d buzzsumo -h localhost 

它給了我這個錯誤消息:

PSQL:FATAL:角色 「Postgres的」 不存在

這是爲什麼了情況下,當我在第一個例子中連接到我的本地服務器,這相當於傳遞本地主機?

回答

2

你不說,但我猜你正在MacOS或Linux上運行postgres。

第一種形式(不帶-h)通過「unix套接字」連接。第二種形式,使用「-h localhost」通過TCP/IP連接到本地主機(IP地址127.0.0.1)。

Postgres以不同的方式處理這兩種類型的連接 - 或者至少可以這樣做。如果您檢查「pgsql/data/pg_hba.conf」文件以查看爲這兩種類型的連接配置了哪些認證機制。

2

您的第一個示例通過Unix套接字連接,第二個示例通過TCP/IP本地環路(localhost)連接。

對於第一個示例,您需要local中的連接類型pg_hba.conf,對於以host開頭的第二行是相關的。您可能已經爲這些連接類別定義了不同的authentication methods

相關問題