pgBouncer多个端口?

时间:2018-03-28 18:52:12

标签: linux postgresql port iptables pgbouncer

我在5432上运行Postgres数据库,在6432运行pgBouncer。

我的所有脚本都指向6432,但是我们有一个大的遗留代码库,指向5432,我们也希望拥有用户pgBouncer。

我们提出的最佳方法是在4432上运行Postgres,在5432和6432上运行pgBouncer。不幸的是,我们只能找到让pbBouncer在一个端口上侦听的方法。

是否可以让pgBouncer监听两个端口?

我们也尝试使用IPTables透明地转发6432到5432,但它没有工作:

sudo iptables -t nat -I PREROUTING -p tcp --dport 6432 -j REDIRECT --to-ports 5432
sudo iptables -t nat -I OUTPUT -p tcp -o lo --dport 6432 -j REDIRECT --to-ports 5432

仍然会出现此错误:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.6432"?

任何建议(除了"更新遗留代码库",作为最后手段保留)?

2 个答案:

答案 0 :(得分:1)

您的iptables对我来说不错,但请不要忘记启用ip转发:

sysctl net.ipv4.ip_forward=1

答案 1 :(得分:0)

你不能让pgbouncer监听多个端口。因此,使用OS工具转发端口是正确的方法。我不是iptables的专家,我无法对你的尝试发表评论。

另一种方法是在一台主机上运行多个pgbouncer实例。