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

Create db_link to the same Database in Postgres

我们确实需要创建一个 db_link(数据库 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;

我怀疑loopback指的是同一个数据库。

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

**Error:password is required**

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

Environment:Postgres RDS

函数调用应如下所示:

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 …