为了账号安全,请及时绑定邮箱和手机立即绑定

如何在PostgreSQL中使用(安装)dblink?

/ 猿问

如何在PostgreSQL中使用(安装)dblink?

繁星淼淼 2019-12-03 16:50:33

我已经习惯了Oracle,并在我的模式中创建了dblink,然后访问了这样的远程数据库:mytable@myremotedb,无论如何,PostgreSQL都可以这样做吗?


现在,我正在像这样使用dblink:


SELECT logindate FROM dblink('host=dev.toto.com

                              user=toto

                              password=isok

                              dbname=totofamily', 'SELECT logindate FROM loginlog');

当我执行此命令时,出现以下错误:


提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。


有人有主意吗?使用它们之前,我们是否必须“激活” dblink或执行某些操作?


在我们要查询的远程数据库上有什么事情要做吗?我们也必须激活dblink吗?我一直有一个could not establish connection。这是行的类型:


SELECT dblink_connect_u('host=x.x.x.x dbname=mydb user=root port=5432');

IP地址正确,并且Postgres正在远程服务器上运行。任何的想法?


查看完整描述

3 回答

?
30秒到达战场

在PostgreSQL 9.1或更高版本中,简化了附加模块的安装。注册的扩展(包括dblink)可以通过以下方式安装CREATE EXTENSION:


CREATE EXTENSION dblink;

安装到默认架构中(public默认情况下)。search_path在运行命令之前,请确保已正确设置了您的设置,并且该模式对于所有需要使用该模式的用户都是可见的。


另外,您可以通过以下方式安装到您选择的任何模式:


CREATE EXTENSION dblink SCHEMA extensions;

看到:


在Postgres数据库的多个架构上安装hstore的最佳方法?

每个数据库运行一次。或在标准系统数据库中运行它,template1以将其自动添加到每个新创建的DB中。手册中的详细信息。


您需要首先在服务器上安装提供模块的文件。对于Debian及其衍生产品,显然是PostgreSQL 9.1 的软件包postgresql-contrib-9.1。


查看完整回答
反对 回复 2019-12-03
?
杨魅力

我正在使用DBLINK连接内部数据库以进行跨数据库查询。


从本文引用。


安装DbLink扩展。


CREATE EXTENSION dblink;

验证DbLink:


SELECT pg_namespace.nspname, pg_proc.proname 

FROM pg_proc, pg_namespace 

WHERE pg_proc.pronamespace=pg_namespace.oid 

   AND pg_proc.proname LIKE '%dblink%';

测试数据库连接:


SELECT dblink_connect('host=localhost user=postgres password=enjoy dbname=postgres');


查看完整回答
反对 回复 2019-12-03
?
慕妹3242003

在linux上,找到dblink.sql,然后在postgresql控制台中执行以下操作以创建所有必需的函数:


\i /usr/share/postgresql/8.4/contrib/dblink.sql 

您可能需要安装contrib软件包: sudo apt-get install postgresql-contrib


查看完整回答
反对 回复 2019-12-03

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信