gpt4 book ai didi

postgresql - postgres_fdw 无法连接到 Amazon RDS 上的服务器

转载 作者:行者123 更新时间:2023-11-29 11:30:15 25 4
gpt4 key购买 nike

我在 RDS 中有两个 Postgres 9.3.5 实例,都在一个安全组中,允许来自安全组内的所有入站流量和所有出站流量。我正在尝试设置一个数据库,以便能够通过 postgres_fdw 从另一个表中选择几个表。

我已经创建了服务器 -

create server master 
foreign data wrapper postgres_fdw
OPTIONS (dbname 'main',
host 'myinstance.xxxxx.amazonaws.com');

以及必要的用户映射和外部表 -

create foreign table condition_fdw (
cond_id integer,
cond_name text
) server master options(table_name 'condition', schema_name 'data');

但是,一个简单的 select count(*) from condition_fdw 给我

ERROR:  could not connect to server "master"
DETAIL: could not connect to server: Connection timed out
Is the server running on host "myinstance.xxxxxx.amazonaws.com" (xx.xx.xx.xx) and accepting
TCP/IP connections on port 5432?

我可以从 EC2 实例通过 psql 连接到两个数据库。我直到最近才知道 RDS 不支持 postgres_fdw,但我正在运行支持的较新版本。

在创建服务器语句中,我尝试用它解析到的 IP 地址替换“myinstance.xxxxxx.amazonaws.com”,但没有成功。

有什么想法吗?

进一步测试

我在具有相同安全组的 ec2 实例上安装了 postgres,主服务器的外部表按预期运行。

同一 RDS 实例上的数据库之间的 postgres_fdw 有效。

这一切让我认为我的 Postgres RDS 实例上来自 postgres_fdw 的传出连接一定有问题。

最佳答案

要让 postgres_fdw 在 AWS RDS(使用 VPC)中的两个实例之间工作,我必须:

  1. 启用custom_dns_resolution https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.html#Appendix.PostgreSQL.CommonDBATasks.CustomDNS
  2. 在安全组的入站规则中添加查询数据库的公网IP 或添加RDS 实例的内部IP 作为服务器主机。 https://forums.aws.amazon.com/thread.jspa?threadID=235154

第一个记录得很好,但我无法让它工作,直到绊倒了第二个。

关于postgresql - postgres_fdw 无法连接到 Amazon RDS 上的服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28747886/

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