我对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的新用户连接到我的本地实例。