大家好,我需要帮助将远程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
但我一直收到错误提示
pg_dump: too many command-line arguments (first is "paycloud_dev")
无法确定我做错了什么
另外,
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
这现在给我报错了。
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?
我进入了AWS并注意到服务器的弹性IP地址。然后我尝试了以下操作(使用私有IP地址)。
pg_dump -C -h 170.30.43.35 -U dev_user paycloud_dev | psql -h localhost -U dev_user paycloud_dev
这要求我输入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?
我尝试编辑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
但它并没有起作用。它先要求我输入我的笔记本电脑的psql密码,然后在我输入任何内容之前,就会出现错误。
[sudo] password for alzer: pg_dump: too many command-line arguments (first is "paycloud_dev")
请尝试运行"pg_dump --help"获取更多信息。
有人能帮忙吗?