mysql_fdw安装使用

环境:
OS:Centos 7
pgdb:13.8
mysqldb:5.7

 

1.安装fdw
[root@localhost extension]#yum list mysql_fdw*
[root@localhost extension]#yum install mysql_fdw_13.x86_64

[postgres@localhost ~]$ psql -h localhost -U postgres -p5432
postgres=# create extension mysql_fdw;
CREATE EXTENSION

 

2.创建server
在PG端创建sever,外部服务定义了具体外部数据源的连接信息,如果外部源是数据库,通常会包含数据库的IP,端口号,数据库名称等信息,如下

postgres=# CREATE SERVER mysql_server_test FOREIGN DATA WRAPPER mysql_fdw OPTIONS (HOST '192.168.1.100', PORT '3306');
CREATE SERVER

postgres=# \des
List of foreign servers
Name | Owner | Foreign-data wrapper
-------------------+----------+----------------------
mysql_server_test | postgres | mysql_fdw
(1 row)

3.创建用户映射
OPTIONS 是指外部拓展的选项,指定了访问外部数据标的本地用户和远程用户信息
postgres=# CREATE USER MAPPING FOR PUBLIC SERVER mysql_server_test OPTIONS (username 'hxl', password 'mysql');
CREATE USER MAPPING

 

4.创建外部表
理论上外部表的字段只要包含于远程mysql表字段内就可以,但是一般的,都建议将外部表与远程表的字段一致。但是mysql和pg字段类型有时会有些许区别,需要确认好字段类型,如下:

postgres=# create foreign table frg_tb_test(id int,name varchar(32)) server mysql_server_test options(dbname 'db_test',table_name 'tb_test');
CREATE FOREIGN TABLE
 
postgres=# \d
             List of relations
 Schema | Name | Type | Owner   
--------+--------+---------------+----------
 public | frg_tb_test | foreign table | postgres
(1 row)

postgres=# select * from frg_tb_test;
 id | name  
----+-------
  1 | name1
  2 | name2
  3 | name3
  4 | name4
  5 | name5
(5 rows)

 

-- The End --

posted @ 2022-11-02 14:05  slnngk  阅读(448)  评论(0编辑  收藏  举报