在 PostgreSQL 中创建数据库链接
问题:
与 Oracle 不同,PostgreSQL 的 dblink 功能在使用前需要进行一些设置。用户在创建 dblink 时可能会遇到类似“没有函数与给定名称和参数类型匹配”的错误。
解决方案:
PostgreSQL 9.1 及更高版本:
-
安装 dblink扩展:
执行 CREATE EXTENSION dblink;在默认公共架构中安装 dblink 扩展。或者,使用 CREATE EXTENSION dblink SCHEMA 扩展;将其安装在特定架构中。
-
确保搜索路径:
在使用 dblinks 之前,请确保正确设置 search_path 以包含包含 dblink 扩展的架构。
远程数据库设置:
要使用 dblink 访问远程数据库,必须:
-
配置主机访问:
在远程数据库上,向从本地数据库连接的用户授予适当的权限。
-
创建一个DBLink:
使用 CREATE DB LINK link_name CONNECT TO 'connection_string';.
-
连接到远程数据库:
使用 SELECT * 在本地数据库上创建 dblink FROM 链接名称.表名称;访问 dblink 中指定的远程表。
示例:
创建连接到位于 host=dev.toto.com 的远程数据库的 dblink用户名 toto、密码 isok 和数据库名称totofamily:
CREATE DB LINK toto_dblink CONNECT TO 'host=dev.toto.com user=toto password=isok dbname=totofamily';
SELECT logindate FROM toto_dblink.dbo.loginlog;
登录后复制
补充说明:
- dblink_connect_u 函数用于测试与远程数据库的连接。
- 如果远程主机位于不同的计算机上,请确保防火墙允许必要端口上的连接(通常是5432)。
- 有关 dblink 的更多信息,请参阅 PostgreSQL 文档。
以上是如何在PostgreSQL中成功创建和使用数据库链接?的详细内容。更多信息请关注PHP中文网其他相关文章!