【发布时间】:2020-06-17 06:56:10
【问题描述】:
我正在尝试使用 psql 转储和恢复托管在 AWS 堡垒上的 Postgres 数据库。为此,我需要打开一个 SSH 隧道。
我这样打开隧道:
ssh -v -A admin@bastion.my.company.name -L 15432:databasename.amazonaws.com:5432 -N
然后转储它:
pg_dump -v -h 0.0.0.0 -p 15432 -U postgres -d databasename --clean -T tablesINeed > ~/pgdumps/databasenamedump.sql
到目前为止一切顺利,我可以通过我的隧道。然后我关闭隧道并尝试恢复:
psql -h 0.0.0.0 -p 5432 -U postgres -d databasename < ~/pgdumps/databasenamedump.sql
但我明白了:
psql:错误:无法连接到服务器:无法连接到服务器:连接被拒绝 服务器是否在主机“0.0.0.0”上运行并接受 端口 5432 上的 TCP/IP 连接?
怎么样?我可能在概念上不理解转储/恢复?一旦我有我的转储数据库,我只想运行它的本地实例。
我应该使用15432(我为ssh隧道打开的端口)来恢复吗?我害怕尝试,因为这是一个生产数据库。我尝试查看 psql 文档,但没有找到类似的场景
感谢您的澄清
【问题讨论】:
-
确保本地实例在本地主机上运行;检查此本地实例上的“show listen_addresses”和“show port”。你可以通过运行“psql”以操作系统用户 postgres 连接到这个本地实例吗?
标签: postgresql amazon-web-services ssh psql restore