多端口下的pgBouncer?

3
我正在运行一个Postgres数据库,端口为5432,pgBouncer的端口为6432。
我所有的脚本都指向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"?

除了“更新传统代码库”(这是最后的手段),您有什么建议吗?
3个回答

1
你的iptables看起来没问题,但别忘了启用IP转发:
sysctl net.ipv4.ip_forward=1

0

你不能让pgbouncer监听多个端口。因此,使用操作系统的功能来转发端口是正确的方法。我不是iptables的专家,所以无法评论你的尝试。

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


0

这篇文章非常老,但是值得一提的是,在我们的店铺中,我们通过创建一个重定向端口的软链接来解决了这个问题。所以在你的情况下:

/tmp/.s.PGSQL.6432 --> /tmp/.s.PGSQL.5432

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接