我在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"?
任何建议(除了"更新遗留代码库",作为最后手段保留)?
答案 0 :(得分:1)
您的iptables对我来说不错,但请不要忘记启用ip转发:
sysctl net.ipv4.ip_forward=1
答案 1 :(得分:0)
你不能让pgbouncer监听多个端口。因此,使用OS工具转发端口是正确的方法。我不是iptables
的专家,我无法对你的尝试发表评论。
另一种方法是在一台主机上运行多个pgbouncer实例。