我正在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"?

有什么建议(除了“更新遗留代码库”,这是不得已而为之)?

最佳答案

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

sysctl net.ipv4.ip_forward=1

关于linux - pgBouncer在多个端口上?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49542106/

10-12 19:48