pg_dump从远程服务器到localhost

Al *_*l D 5 postgresql ssh pg-dump

大家好,任何人都可以帮我从远程AWS服务器上的postgreSQL数据库转储到本地机器上的postgreSQL数据库.

我一直在尝试使用这个堆栈帖子中的答案,但它一直在失败.

我正在使用的命令是

pg_dump -C -h ssh ubuntu@ec2-59-16-143-85.eu-west-1.compute.amazonaws.com -U dev_user paycloud_dev | psql -h localhost -U dev_user paycloud_dev
Run Code Online (Sandbox Code Playgroud)

但我一直在收到错误

pg_dump: too many command-line arguments (first is "paycloud_dev")
Run Code Online (Sandbox Code Playgroud)

无法弄清楚我做错了什么

只是添加,dev_user是我在本地机器和远程服务器上的postgreSQL中设置的角色.paycloud_dev是两个数据库的名称(所有者是dev_user)

编辑1

根据由于某种原因已被删除的帖子尝试下面的命令

pg_dump -C -h ec2-59-16-143-85.eu-west-1.compute.amazonaws.com -U dev_user paycloud_dev | psql -h localhost -U dev_user paycloud_dev 
Run Code Online (Sandbox Code Playgroud)

现在这给了我错误

pg_dump: [archiver (db)] connection to database "paycloud_dev" failed: could not connect to server: Connection refused
Is the server running on host "ec2-59-16-143-85.eu-west-1.compute.amazonaws.com" (59.16.143.85) and accepting
TCP/IP connections on port 5432?
Run Code Online (Sandbox Code Playgroud)

我继续使用AWS并注意到它是服务器的弹性IP.然后我尝试了以下(私有IP地址)

pg_dump -C -h 170.30.43.35 -U dev_user paycloud_dev | psql -h localhost -U dev_user paycloud_dev
Run Code Online (Sandbox Code Playgroud)

这要求我输入paycloud_dev的密码,当我输入它时会暂停2或3分钟并返回:

pg_dump: [archiver (db)] connection to database "paycloud_dev" failed: could not connect to server: Connection refused
Is the server running on host "170.30.43.35" and accepting
TCP/IP connections on port 5432?
Run Code Online (Sandbox Code Playgroud)

我已尝试编辑AWS安全组以添加接受所有流量的规则(端口范围0-65535),但发生了相同的错误.

编辑2

按照pokoli的帖子尝试以下内容

ssh ubuntu@ec2-59-16-143-85.eu-west-1.compute.amazonaws.com pg_dump -C -h  -U dev_user paycloud_dev | psql -U dev_user paycloud_dev
Run Code Online (Sandbox Code Playgroud)

虽然不行.它首先要求我为我的笔记本电脑的psql密码,然后我可以输入任何东西,它给出了一个错误.

[sudo] password for alzer: pg_dump: too many command-line arguments (first is "paycloud_dev")
Run Code Online (Sandbox Code Playgroud)

请尝试"pg_dump --help"以获取更多信息.

任何人?

pok*_*oli 6

您必须使用ssh连接到远程主机,执行转储并将其传送到本地计算机.以下命令应该:

ssh ubuntu@ec2-59-16-143-85.eu-west-1.compute.amazonaws.com -C pg_dump  -U dev_user paycloud_dev | psql -U dev_user paycloud_dev
Run Code Online (Sandbox Code Playgroud)

如果需要,该命令将询问两个用户的密码,并且playcloud_dev数据库应存在于localhost上,否则转储将失败.