2013-08-07 12 views
2

我想使用www-data用戶訪問postgres。該命令由cli啓動。使用www-data和--host參數進行Postgres訪問

我的程序需要能夠推出這個命令:

psql --username www-data --host=127.0.0.1 --dbname=dbname 

它完美地工作,如果我刪除主機= 127.0.0.1,不幸的是我使用第三方程序進行這個命令,我可以更改。

我的pg_hba.conf是標準 當地所有Postgres的同行

# TYPE DATABASE  USER   ADDRESS     METHOD 

# "local" is for Unix domain socket connections only 
local all    all          peer 
#host all    www-data   127.0.0.1/32   md5 
# IPv4 local connections: 
host all    all    127.0.0.1/32   md5 
# IPv6 local connections: 
host all    all    ::1/128     md5 

在postgresql.conf裏,我把

listen_addresses = '*' 

是的,它是不安全的,但我測試的一切。還不行的

在.pgpass

127.0.0.1:5432:*:www-data:password 

我嘗試了所有方法:對,IDENT,MD5,密碼,我有錯誤每次。

該錯誤消息(法語):

FATAL: authentification par mot de passe ?chou?e pour l'utilisateur << www-data >> 
mot de passe récupéré dans le fichier fichier « /var/www/.pgpass » 

這意味着,通過密碼認證失敗,用戶WWW的數據。它還報告說它能夠從pgpass(/var/www/.pgpass)恢復密碼。

感謝您的幫助,我不知道該怎麼做。

+0

什麼貓/var/www/.pgpass返回哪個第三方程序? –

+0

如果您確定密碼,接下來要檢查的是它的有效性:'從pg_user中選擇valuntil,其中usename ='www-data''。主要是因爲相關的[pgadmin bug](http://stackoverflow.com/a/14566264/238814) –

+0

第三方程序是Drush,Drupal的cli工具。對於valuntil,感謝提示,它是空的,既無窮大也不是1970. – user1753847

回答

1

好吧,這是非常愚蠢的。

當我創建了createuser命令時,我用-W代替-P。我誤讀了CREATEUSER --help :(

我意識到自己的錯誤,當我試圖重新創建www數據還有一次,一看,發現密碼被問兩次,而不是一次。