2011-08-12 241 views
13

我在CentOS服務器上成功安裝了PostgreSQL服務器8.4。 在那之後,我登錄到CentOS的服務器通過使用「Postgres的用戶,但我不能運行任何命令,出現錯誤:用戶「postgres」的密碼驗證失敗

密碼驗證失敗的用戶「Postgres的」

這裏某些配置中的pg_hba.conf和postgresql.conf中:

--------------------configuration in postgresql.conf----------- 
listen_addresses = '*' 

--------------------configuration in pg_hba.conf--------------- 
local all   all        md5 
local all   postgres       md5 
host all   all   127.0.0.1/32   md5 
host all   all   ::1/128    md5 

回答

11

確保您使用的Postgres的PostgreSQL帳戶的密碼,而不是Postgres系統帳戶。嘗試「信任」,而不是「md5」在pg_hba.conf連接到數據庫更改您的通行證。

+0

什麼Postgres的系統帳戶和Postgres PostgreSQL的帳戶之間的區別?以及如何檢查我是否使用postgres PostgreSQL帳戶? –

+0

你應該知道你使用哪個密碼。 – Daniel

+0

我已經使用PostgreSQL帳戶的密碼。 –

14

我傾向於使用pg_hba.conf中的以下內容:

# Database administrative login by UNIX sockets 
local all   postgres       ident 

# TYPE DATABASE USER  CIDR-ADDRESS   METHOD 
local all   all        md5 
host all   all   127.0.0.1/32   md5 
host all   all   ::1/128    md5 

這意味着,一旦你「Postgres的」,你不需要密碼,但你需要sudo的權利成爲Postgres的,所以這非常安全。任何其他用戶都可以使用簡單的md5身份驗證進行登錄,這意味着您不必在整個地方都可以使用sudo。這對我很好。

8

我遇到了類似的問題(相同的錯誤信息)。像丹尼爾回答,這是因爲我混淆之間:

「postgres PostgreSQL帳戶,而不是postgres系統帳戶。」

可以肯定的關於Postgres密碼,只需將其更改爲「123456」(或任何其他密碼)

# su postgres 
# psql -d template1 
template1=# ALTER USER postgres WITH PASSWORD '123456'; 
相關問題