gpt4 book ai didi

database - 如何 pg_dump RDS Postgres 数据库?

转载 作者:太空狗 更新时间:2023-10-30 01:37:58 25 4
gpt4 key购买 nike

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

这是实例的端点:

<long public dns thing>:5432

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

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?

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

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

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

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

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

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

最佳答案

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

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

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

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

你可以看到这是一个正式的争论。所以整个命令(在我的例子中)是:

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

请注意,指定端口号不是必需的——我认为是因为端口 5432 是 postgres 的端口。

关于database - 如何 pg_dump RDS Postgres 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31881786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com