0

我正在尝试将 pgpool 配置为在两台服务器之间使用负载平衡(都运行 Debian 8.2 和 Postgresql 9.4)。我已经在两者之间进行了流式复制(153 中的主服务器和 155 中的从服务器)。现在我安装了 PgPool 并配置了两台服务器:

backend_hostname0 = '10.0.0.153'
backend_port0 = 5432
backend_weight0 = 1
backend_data_directory0 = '/var/lib/postgresq/9.4/main'

backend_hostname1 = '10.0.0.155'
backend_port1 = 5432
backend_weight1 = 1
backend_data_directory1 = '/var/lib/postgresq/9.4/main'

并配置pool_hba,pool_passwd,load_balance_mode为on。我的问题是:当我尝试通过 pgpool 使用 psql 时,它显示错误:“psql: FATAL: password authentication failed for user 'postgres'”

但是,如果我评论 backend1 的所有部分,不再更改,然后重新启动 pgpool2 服务,我可以在同一台机器上使用完全相同的用户和密码毫无问题地连接。我不知道是否应该设置另一个参数以使用两台服务器并在它们之间进行负载平衡。

我可以使用 psql 从每个客户端连接到每个后端服务器就好了,所以凭据不应该是问题。

PS:不知道有没有帮助。但是在 pgpool.conf 中,replication_mode 是关闭的,因为我使用的是 Streaming Replication,据我所知,可以使用 load_balance 而不通过 pgpool 进行复制。

谢谢。

4

2 回答 2

0

pgpool 的负载均衡可以与流式复制一起使用,因为您需要将 master_slave_mode 和 load_balance_mode 设置为 true 并将 master_slave_sub_mode 设置为流式传输。

对于您遇到的身份验证错误,请检查 pgpool 主机的 pg_hba.conf 设置。根据指定的身份验证方法的类型,请参阅 pgpool 文档中相应的客户端身份验证部分。

http://www.pgpool.net/docs/latest/pgpool-en.html#hba

于 2016-04-20T12:27:20.027 回答
0

尝试登录 pgppol 服务器并运行命令: pg_md5 -m -u postgres your_password_for_postgres_user

现在查看 pool_passwd 的内容。它应该包含以下内容:

postgres:md55ebe2294ecd0e0f08eab7690d2a6ee69

现在重新启动您的 pgpool 并尝试再次连接。希望您的问题将得到解决。

于 2016-04-03T07:25:27.830 回答