Postgresql 提供的用户名和经过身份验证的用户名不匹配

Hon*_* Yi 8 postgresql

我正在尝试使用 PostgreSql 在我自己的服务器上运行 tinyRSS。但是我不断收到此错误:

LOG:  provided user name (tinyrss) and authenticated user name (apache) do not match
FATAL:  Peer authentication failed for user "tinyrss"
Run Code Online (Sandbox Code Playgroud)

我知道 postgresql 使用基于主机的身份验证,并且由于我没有与主机相同的帐户名(tinyrss),因此我需要使用用户名映射,因此我将此行添加到pg_ident.conf

# MAPNAME       SYSTEM-USERNAME         PG-USERNAME
tinyrss hongyi tinyrss
Run Code Online (Sandbox Code Playgroud)

和下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
Run Code Online (Sandbox Code Playgroud)

我能知道我做错了什么以及解决方法吗?提前致谢!

小智 5

由于您正在使用ident身份验证并与操作系统帐户名为 的用户连接apache,因此您需要有一个映射到tinyrss的条目apache,正如消息所暗示的那样。

以下行应该适合您pg_ident.conf

tinyrss apache tinyrss