我正在尝试使用PostgreSql在我自己的服务器上运行tinyRSS。 不过,我不断收到这个错误:
LOG: provided user name (tinyrss) and authenticated user name (apache) do not match FATAL: Peer authentication failed for user "tinyrss"
我明白,postgresql使用基于主机的身份validation,因为我没有相同的帐户名(tinyrss)作为主机我需要使用用户名映射,所以我添加到pg_ident.conf这行:
# MAPNAME SYSTEM-USERNAME PG-USERNAME tinyrss hongyi tinyrss
并在pg_hba.conf下:
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only # local all all peer # IPv4 local connections: host all all 127.0.0.1/32 ident map=tinyrss # IPv6 local connections: host all all ::1/128 ident
我可以知道我做错了什么,并解决这个问题吗? 提前致谢!
由于您正在使用identvalidation,并与具有操作系统帐户名称为apache的用户连接,因此您需要有一个将tinyrss映射到apache的条目,正如消息所暗示的。
下面这行应该在你的pg_ident.conf :
tinyrss apache tinyrss
我在这里留下我的提示,因为在我search答案的时候,这个问题在谷歌中很高。
如果您使用的是SSL身份validation,请确保您的〜/ .postgresql / postgresql.crt通用名称与您尝试连接的用户名称相同。 该用户必须在您尝试连接的服务器上的pg_hba.conf中定义。 您的客户端也必须从允许的IP /主机连接。
希望这有助于某人。