Database 如何转储RDS Postgres数据库?

Database 如何转储RDS Postgres数据库?,database,postgresql,amazon-web-services,Database,Postgresql,Amazon Web Services,如何使用pg_dump连接到我的RDS实例 这是实例的端点: <long public dns thing>:5432 :5432 所以我运行这个命令: pg_dump -h <long public dns thing> -p 5432 -f dump.sql pg_dump-h-p5432-f dump.sql 得到这个: pg_dump: [archiver (db)] connection to database "brendan" failed: cou

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

这是实例的端点:

<long public dns thing>:5432
:5432
所以我运行这个命令:

pg_dump -h <long public dns thing> -p 5432 -f dump.sql
pg_dump-h-p5432-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?
pg_dump:[archiver(db)]与数据库“brendan”的连接失败:
无法连接到服务器:连接被拒绝
服务器是否在主机“”上运行
()并在端口5432上接受TCP/IP连接?
以下是亚马逊的故障排除建议:

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

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

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

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


甚至尝试远程使用pg_转储都是错误的吗?我应该尝试使用ssh连接实例,还是完全执行其他操作?

步骤1:在AWS上创建一个安全组,将计算机的IP地址列为白色

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

步骤3:运行pg_转储。确保使用-U命令指定您的用户名(感谢@LHWizard)。在这种情况下,我的不是“博士后”,所以我想一般来说,你必须在aws中查找才能找到它。还要确保指定数据库的名称:在一些命令行工具中,有一个a-d开关,但是如果检查pg_dump的用法:

Usage:
  pg_dump [OPTION]... [DBNAME]
你可以看到这是一个正式的论点。 因此,整个命令(就我而言)是:

pg_dump-h-U-f dump.sql

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

这是因为您没有指定正确的凭据吗-U postgres或任何适合您db的内容?
-U postgres
指定我的用户名为“postgres”?…是的,完全正确
pg_dump-U postgres-h等…
或任何正确的postgres用户。我记得,默认情况下它通常是“postgres”。
pg\u dump
包含一个
-d
开关。这个语法是有效的(9.3+):
pg_dump-h my_host-U username-d target_db>dump_file
。这可能是由于共享服务器资源体系结构造成的。每当创建实例时,您都会创建一个超级用户,但您通常会使用特定于要转储的数据库的用户在RDS上执行类似的过程。如果您的客户端版本与服务器版本不同,则此操作不起作用。有没有办法不使用pg_dump就获取SQL转储?@Brendan server显示的是9.6版本,而实例的ssh显示的是postgres db的9.3.2版本,因此pg_dump失败。任何sol???@JissRaphel,抱歉,朋友,没有线索。自2015年以来就没有处理过这件事:(
pg_dump -h <public dns> -U <my username> -f dump.sql <name of my database>