为什么在尝试使用pgbouncer进行连接时psql要求输入密码

时间:2018-08-17 21:13:51

标签: postgresql psql pgbouncer

我已将pgbouncer-1.7.2与PostgreSQL-9.6数据库安装在同一Linux服务器上。 当我尝试使用pgbouncer连接到本地数据库时,数据库要求输入密码。例如:

psql -p 6432 -U postgres -d mydb10 -h localhost 
**Password for user postgres:** 

输入密码后,登录即可。 相同的直接请求无需密码即可运行:

psql -p 5432 -U postgres -d mydb10 -h localhost 
psql (9.6.5) 
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384,    bits: 256, compression: off) 
Type "help" for help. 

mydb10=# \q 

Pgbouncer设置(并非全部):

[databases]
* = host=127.0.0.1 port=5432 auth_user=postgres pool_size=20
[pgbouncer]

listen_addr = *
listen_port = 6432

auth_type = md5
auth_file = /etc/pgbouncer/userlist.txt
;; auth_query = SELECT usename, passwd FROM pg_shadow WHERE usename=$1

PostgreSQL设置(并非全部):

port = 5432

pg_hba.conf中的所有METHOD均设置为“ trust”。 如果我设置 auth_type = trust ,则通过pgbouncer进行连接不需要密码。 有趣的是,将pgbouncer安装在单独的服务器上时,相同的配置不会出现此类问题。

请,如果您有解决办法,请告诉我。

1 个答案:

答案 0 :(得分:0)

如果您希望不进行密码检查就可以连接auth_type = trust(就像您在pg_hba.conf中配置了trust一样)

关于

  

有趣的是,将pgbouncer安装在单独的服务器上时,相同的配置不会出现此类问题。

也许其他服务器上的/etc/pgbouncer/userlist.txt有所不同?

PS还请注意,从1.7版开始,pgbouncer支持auth_type = hba,您可能会认为合适。

PPS您通过不同的pgbouncer实例访问的问题可能是由于.pgpass使用的psql文件不同

相关问题