pgsql使用积累系列_pg数据库插件安装(以创建外部表连接为例)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wfl_137724/article/details/84875314

pg数据库插件安装看这一篇就足够了

写在前面pgsql的外部表连接就是dblink,通过不同的外部连接插件可以实现pg库操作其他数据库(pg数据库或者mysql等其他类型的数据库)。这里以外部连接其他pg数据库和mysql为例,聊聊pg数据库插件安装。

1. 安装postgresql(10.1)

参考链接:postgresql10安装

2. 查看可安装插件

yum search postgresql

2.1 查找源并安装源。

不知道自己安装的插件是谁提供的就把下面查到的两个插件都安装了(外部连接是由贡献者提供的插件,只要安装后者就可以了),我理解这两个就是插件包,安装其他插件会依赖于这两个插件

yum search postgresql | grep contrib 
#yum -y install postgresql-contrib.x86_64 安装官方提供的插件模块,(安装pg数据库的时候默认已安装?)
#yum -y install postgresql10-contrib.x86_64 安装由贡献者提供或者发布的模块

2.2 查找具体功能插件如外部连接插件并安装

yum search postgresql | grep fdw
yum -y install *fdw* #最好还是根据查出来的插件安装 例如 yum -y install mysql_fdw_10.x86_64

2.3 加载插件对象到数据库里

(实在不知道到该怎么描述下面这件事,就用官网的吧:create extension command loads the objects into your database)

su postgres
psql "host=127.0.0.1 port=5432 dbname=fdw_ user=admin password=123456" 
或者psql -d fdw_ -U admin(pg_hba.conf里面要配置成trust。md5因为没有密码会报用户认证失败)
create extension mysql_fdw;
create extension postgres_fdw;

查看插件安装情况

select * from pg_available_extensions where name like '%fdw%';

如上图可以查到所有可以安装的插件及版本号,installed_version值不为空说明已经加载到数据库里了(只是加载了插件的数据库installed_version是有值的,其他没有加载的数据库是没有值的)

下面是使用分别使用mysql_fdw和postgres_fdw插件连接mysql数据库和另外一个pgsql数据库,大环境是windows安装被连接的pg库和mysql库,虚拟机centos7系统安装的连接外部的pgsql测试数据库。参数比较好理解就不做解释了,直接上demo,其他数据库插件使用方法可以自行到pg第三方插件查看,

4. mysql 外部连接(fdw)

4.1 创建server对象

create server localdb_mysql
     foreign data wrapper mysql_fdw
     options (host '192.168.99.248', port '3307');

4.2 创建用户映射关系

create user mapping for admin
    server localdb_mysql 
    options (username 'admin', password '123456');

4.3 创建外部表(代理表)

外部表要与远程连接表结构一致
create foreign table mysql_python_employee (
    first_name varchar(20),
        last_name varchar(20),
        age int4,
        sex varchar(1),
        income float)
server localdb_mysql
options (dbname 'summer_sys', table_name 'python_employee');

4.4 测试

select * from mysql_python_employee;

-- 登录mysql创建唯一索引,否则不能进行DML操作。create unique index python_employee_idx on python_employee(first_name);
insert into mysql_python_employee ("first_name", "last_name", "age", "sex", "income") VALUES ('zhang', 'san', '20', 'F', '4000');

5. pgsql 外部连接(fdw)

5.1 创建server对象

create server localdb_pgsql
        foreign data wrapper postgres_fdw
        options (host '192.168.99.248', port '5433', dbname 'pgtestdb');

5.2 创建用户映射关系

create user mapping for admin
        server localdb_pgsql
        options (user 'admin', password '123456');

5.3 创建外部表(代理表)

create foreign table pgsql_check_ (
        c_ms integer,
        c_pg integer
)
server localdb_pgsql
options (schema_name 'public', table_name 'check_');

select * from pgsql_check_;

insert into pgsql_check_("c_ms", "c_pg") values ('2', '19');

总结:本文旨在通过外部连接插件实现pgsql连接其他数据库,来说明pgsql扩展功能使用步骤。

猜你喜欢

转载自blog.csdn.net/wfl_137724/article/details/84875314
今日推荐