我想用 www-data 用户访问 postgres。该命令由 cli 启动。
我的程序需要能够启动此命令:
psql --username www-data --host=127.0.0.1 --dbname=dbname
如果我删除 --host=127.0.0.1,它会完美运行,不幸的是我使用第三方程序来执行此命令,我可以更改它。
我的 pg_hba.conf 是标准的本地所有 postgres peer
# 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) 中恢复密码。
谢谢你的帮助,我不知道该怎么办。