2013-05-18 44 views
0

我在我的postgresql數據庫中有一個pgrouting數據庫。所有者是用戶,但是當我嘗試使用psql -U用戶pgrouting認證失敗

psql -U user pgrouting 

錯誤連接發生

psql: FATAL: Peer authentication failed for user "user" 

如何解決這個問題?

+0

你配置了你的pg_hba.conf文件嗎? [Postgres基於主機的身份驗證](http://www.postgresql.org/docs/8.2/static/auth-pg-hba-conf.html) –

+0

不,我該怎麼做? – smk

+0

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

回答

0

首先,你似乎誤解了「同行認證」的本質。我引用the manual here

的對等身份驗證方法的工作原理是從內核獲取客戶端的 操作系統的用戶名,並用它作爲允許 數據庫的用戶名。

系統用戶的名稱必須與db用戶的名稱相匹配。對於此驗證方法,您不提供帶有-U參數的用戶名。雖然你是,事實上,身份登錄相應的系統用戶,只需問題:

psql pgrouting 

有了這樣的端口更多的連接選項,如果他們從默認值不同。

接下來,您不應該使用user作爲實際的用戶名。這在每個SQL標準和Postgres中都是reserved word。每個人都很困惑。

如果你想允許使用密碼登錄,您必須添加一個條目,以您的pg_hba.conf文件允許password or md5 (preferably) authentication method - 和重裝

+0

與sudo合作謝謝你... – smk