如何 pg_dump RDS Postgres 数据库? [英] How to pg_dump an RDS Postgres database?

查看:32
本文介绍了如何 pg_dump RDS Postgres 数据库?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用 pg_dump 连接到我的 RDS 实例?

How can I connect to my RDS instance using pg_dump?

这是实例的端点:

<long public dns thing>:5432

所以我正在运行这个命令:

So I'm running this command:

pg_dump -h <long public dns thing> -p 5432 -f dump.sql

得到这个:

pg_dump: [archiver (db)] connection to database "brendan" failed:
could not connect to server: Connection refused
Is the server running on host "<long public dns thing>"
(<IP address>) and accepting TCP/IP connections on port 5432?

这是亚马逊的故障排除建议:

This is Amazon's troubleshooting advice:

无法连接到 Amazon RDS PostgreSQL 数据库实例

尝试连接到 PostgreSQL 数据库实例时最常见的问题是分配给数据库实例的安全组具有不正确的访问规则.默认情况下,数据库实例不允许访问;通过安全组授予访问权限.要授予访问权限,您必须创建自己的安全组,并根据您的情况使用特定的入口和出口规则.有关为数据库实例创建安全组的更多信息,请参阅创建安全组.

最常见的错误是无法连接到服务器:连接超时.如果您收到此错误,请检查主机名是否为数据库实例终端节点以及端口号是否正确.检查分配给数据库实例的安全组是否具有允许通过本地防火墙进行访问的必要规则.

有没有办法从 pg_dump 指定我的安全组?如果是这样,我是否必须像在 ssh'ing 时需要 ssh 密钥那样获取本地副本?

Is there a way to specify my security group from pg_dump? If so, do I have to get a local copy of that the way that I need an ssh key when ssh'ing?

尝试远程使用 pg_dump 是错误的吗?我应该尝试仅通过 ssh 连接到实例,还是完全做其他事情?

Is it a mistake to even try to use pg_dump remotely? Should I be trying to just ssh onto the instance instead, or doing something else entirely?

推荐答案

步骤 1:在 AWS 上创建一个安全组,将您的计算机的 IP 地址列入白名单.

Step 1: Create a security group on AWS that has your computer's IP address white listed.

第 2 步:将该安全组添加到您要连接的数据库实例.

Step 2: Add that security group to the database instance you want to connect to.

第 3 步:运行 pg_dump.确保使用 -U 命令指定您的用户名(感谢 @LHWizard).在这种情况下,我的不是postgres",所以我想通常你必须查看 aws 才能找到它.还要确保指定您的数据库名称:在某些命令行工具中,有一个 -d 开关,但是如果您检查 pg_dump 的用法:

Step 3: Run pg_dump. Make sure to specify your user name (thanks @LHWizard) with the -U command. In this case mine wasn't 'postgres', so I guess generally you'll have to look in aws to find it. Also make sure to specify your database's name: in some command line tools there's a -d switch for that, but if you check pg_dump's usage:

Usage:
  pg_dump [OPTION]... [DBNAME]

你可以看到这是一个正式的论证.所以整个命令(就我而言)是:

you can see that it's a formal argument. So the whole command (in my case) was:

pg_dump -h <public dns> -U <my username> -f dump.sql <name of my database>

请注意,没有必要指定端口号——我认为是因为端口 5432 是 postgres 的端口.

Notice that specifying the port number wasn't necessary -- I think because port 5432 is THE port for postgres.

这篇关于如何 pg_dump RDS Postgres 数据库?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆