我正在使用 PgBouncer。主要概念是仅在 PgBouncer 端验证连接并在 PgBouncer <-> PostgreSQL 连接之间进行信任。我的 pg_hba.conf:
local all all trust
我的pgbouncer.ini:
[databases]
someuser = dbname=someuser port=5432 auth_user=someuser
[pgbouncer]
listen_port = 6432
listen_addr = *
auth_type = md5
auth_file = userlist.txt
logfile = pgbouncer.log
pidfile = pgbouncer.pid
admin_users = postgres
min_pool_size = 20
reserve_pool_size = 5
reserve_pool_timeout = 10.0
ignore_startup_parameters = extra_float_digits
unix_socket_dir = /var/run/postgresql
如果我尝试从本地主机进行身份验证,那么我不会收到任何错误,但如果我从另一个主机尝试,我会收到错误并在 pgbouncer.log 中出现以下行:
[784564] WARNING server login failed: FATAL Peer authentication failed for user
只需将 host=localhost 添加到 [databases],此错误就消失了。因此,似乎如果您没有将主机添加到数据库配置中,那么 pgbouncer 会尝试通过套接字连接到 postgresql,并且会引发对等身份验证错误