我想使用www-data用户访问postgres。该命令由cli发起。
我的程序需要能够启动此命令:
psql --username www-data --host=127.0.0.1 --dbname=dbname
如果我删除了--host = 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
我尝试了所有方法:peer,ident,md5,password,我每次都有错误。
错误讯息(法文):
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-data的密码验证失败。它还报告说它能够从pgpass(/var/www/.pgpass)恢复密码。
感谢您的帮助,我不知道该怎么做。
答案 0 :(得分:1)
好的,这是非常愚蠢的。
当我创建createuser命令时,我使用-W而不是-P。我误读了createuser --help :(
当我再次尝试重新创建www-data时,我意识到自己的错误,并且发现密码只被问过一次而不是两次。