在Postgres中创建db_link到同一个数据库

时间:2018-01-17 15:00:58

标签: postgresql rds dblink

我们确实要求创建一个db_link(数据库链接)必须引用同一个数据库。

当我查看函数中的代码时。这有点像这样。

perform dblink_connect(cn,'loopback'::text);
   cn is the connection name;

我通过使用此查询验证了是否有任何具有名称loopback的外部服务器。但是,没有运气     select srvname as name, srvowner::regrole as owner, fdwname as wrapper, srvoptions as options from pg_foreign_server join pg_foreign_data_wrapper w on w.oid = srvfdw;

我怀疑环回是指同一个数据库。

当我执行函数时,我收到以下错误

**Error:password is required**

我验证了db_link extension it's there and dblink_fdw is also there

Environment:Postgres RDS

1 个答案:

答案 0 :(得分:1)

函数调用应如下所示:

PERFORM dblink_connect(cn, 'host=loopback user=...');

这是一个普通的libpq连接字符串;有关详细信息,请参阅the documentation

pg_hba.conf应包含

之类的行
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

如果您需要密码验证,请使用md5代替trust并在连接字符串中提供密码。

我从未听说过dblink_fdw ......