使用PostgreSQL和dblink_connect

时间:2016-05-24 12:36:50

标签: postgresql dblink

我对PostgreSQL和dblink有一个奇怪的问题。 我在亚马逊RDS 9.5.2上安装了远程PostgreSQL,在Windows 10上安装了本地PostgreSQL。

我正在尝试使用dblink将数据从本地安装传输到远程安装。我通过从pgAdmin III打开的查询窗口连接到远程数据库。

连接到默认的postgres数据库时,我成功了:

select dblink_connect('dbname=postgres host=localhost user=postgres password=xxx');

但是,当我尝试连接到任何其他数据库时,我收到错误:

select dblink_connect('dbname=gti host=localhost user=postgres password=xxx');
ERROR:  could not establish connection
DETAIL:  FATAL:  database "gti" does not exist

********** Error **********

ERROR: could not establish connection
SQL state: 08001
Detail: FATAL:  database "gti" does not exist

我已将所有权更改为数据库的postgres用户。

但是我在我的智慧结束还有什么可尝试的。

编辑。 PgAdmin的屏幕截图显示了远程和本地数据库: pgAdmin screenshot

编辑2:我按要求运行select * from pg_database;Result set

编辑3:我在本地网络上的另一台机器上安装了新的PostgreSQL。连接到亚马逊并得到完全相同的错误。

如果我在pgAdmin上从这台新电脑上的PostgreSQL连接到我的电脑上的PostgreSQL,打开一个查询窗口并从那里dblink_connect到本地实例我没有收到任何错误。因此,当连接到我们网络之外的数据库时,或者仅仅是亚马逊,似乎是一个错误。

编辑4:如果我将另一个用户添加到我的Local PostgreSQL实例并授予其超级用户访问权限,则无法使用dblink从amazon查询窗口连接到我的本地实例。但是,我可以使用来自本地网络上其他PostgreSQL的新用户连接到我的本地实例。

0 个答案:

没有答案