PostgreSQL MySQL_FDW 插件的安装
随着业务的不断扩大,涉及到很多与第三方系统的交互问题,由于第三方使用的数据库的种类有很多,因此我们需要在自己的数据库层面去解决与第三方数据的交互访问问题。
PostgreSQL 有一个非常大的优点,就是提供了很多的插件可以实现对别的数据库的访问。下面我介绍下关于 MySQL 数据库的访问插件的安装与配置。
[root@localhost ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@localhost ~]# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
[root@localhost ~]# rpm -qa | grep mariadb
[root@localhost ~]# rm -rf /etc/my.cnf
[root@localhost ~]# yum -y install mysql-devel
[root@localhost mysql_fdw-master]# vi /etc/profile
export PATH=/usr/local/mysql/bin/:$PATH
[root@localhost mysql_fdw-master]# source /etc/profile
备注:如果这里已经安装了 mysql 则只需要配置环境变量即可
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# unzip mysql_fdw-master.zip
[root@localhost src]# cd mysql_fdw-master
[root@localhost mysql_fdw-master]# make USE_PGXS=1
[root@localhost mysql_fdw-master]# make USE_PGXS=1 install
[root@localhost mysql_fdw-master]# su - postgres
[postgres@localhost ~]$ psql
postgres=# \c cloud_test
cloud_test=# create extension mysql_fdw;
[root@localhost mysql_fdw-master]# cd /usr/local/pgsql-12.8/lib/
[root@localhost lib]# chown postgres:postgres ./mysql_fdw.so
[root@localhost lib]# cd /usr/local/pgsql-12.8/share/extension/
[root@localhost extension]# chown postgres:postgres ./mysql_fdw*
[root@localhost extension]# ln -s /usr/lib64/mysql/libmysqlclient.so.18.0.0 /usr/local/pgsql-12.8/lib/libmysqlclient.so
postgres=# \c cloud_test
You are now connected to database "cloud_test" as user "postgres".
cloud_test=# create extension mysql_fdw;
CREATE EXTENSION
CREATE SERVER mysql_server
FOREIGN DATA WRAPPER mysql_fdw
OPTIONS (host 'mysql_host', port 'mysql_port', dbname 'mysql_dbname');
CREATE USER MAPPING FOR current_user
SERVER mysql_server
OPTIONS (username 'mysql_username', password 'mysql_password');
CREATE FOREIGN TABLE mysql_table (
column1 data_type,
column2 data_type,
...
)
SERVER mysql_server
OPTIONS (table_name 'mysql_table');