Postgresql提供的用户名和authentication用户名不匹配

我正在尝试使用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 /主机连接。

希望这有助于某人。