我正在玩pgpool2。
我正在使用命令psql -U postgres -p 5432
连接到运行在端口5432上的postgresql,并且它正常连接。
当我使用命令psql -U postgres -p 9999
连接到在9999端口上运行的pgpool2时 - 它返回如下对话框:
psql: root@master:/linux/path#
我做错了什么?有没有办法使用psql连接到pgpool? 我也无法从应用程序连接到它。
UPD 我遇到以下错误pool_do_auth: maybe protocol version mismatch (current version 3)
已解决:问题出现在后端的pgpool auth中。编辑pg_hba.conf
已解决的问题。
答案 0 :(得分:2)
此错误消息和行为是由于 pgpool对postgres进行身份验证的问题,而不是您可能怀疑对pgpool进行身份验证的问题。如果您查看postgres日志,它会告诉您 postgres pg_hba.conf
中的哪一行被拒绝。
但是,由于(IIRC)pgpool不能进行对等身份验证,可能就是这个,它表示所有本地(unix socket)连接都将通过伪装系统用户名来验证postgres用户名:
local all all peer
您想将其更改为:
local all all trust
至少让事情有效。但是,您将以这种方式失去一些安全性。但是,如果所有用户(可以访问unix套接字)都是可信的,那就没问题了。