文档中心MogDBMogDB StackUqbar
v3.0

文档:v3.0

支持的版本:

其他版本:

mysql_fdw

mysql_fdw是一款开源插件。MogDB基于开源的mysql_fdw Release 2.5.3版本进行开发适配。

MogDB 3.0.5版本提供mysql_fdw插件,下面依次介绍如何安装和使用mysql_fdw。


安装mysql_fdw

  1. 使用mysql_fdw插件依赖MySQL的so文件。

    访问MySQL官网下载MySQL安装包并解压,将解压后的libmysqlclient.so文件放入$GAUSSHOME/lib下。

    示例:

    [omm@mogdb-kernel-002 ~]$ mkdir /opt/mysql/
    [omm@mogdb-kernel-002 ~]$ cd /opt/mysql/
    [omm@mogdb-kernel-002 mysql]$ tar -zxvf mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz
    [omm@mogdb-kernel-002 mysql]$ cd mysql-8.0.33-linux-glibc2.28-x86_64/lib
    [omm@mogdb-kernel-002 lib]$ cp libmysqlclient.so $GAUSSHOME/lib
  2. 访问MogDB下载页面,下载所需版本的插件,例如Plugins-3.0.5-openEuler-x86_64.tar.gz。

  3. 解压插件包,例如:

    tar -zxvf Plugins-3.0.5-openEuler-x86_64.tar.gz
  4. 使用数据库初始用户omm进入plugins/mysql_fdw目录下,将mysql_fdw--1.1.sql、mysql_fdw.control、mysql_fdw.so文件分别拷贝到数据库安装目录下的share/postgresql/extension/mysql_fdw--1.1.sql、share/postgresql/extension/mysql_fdw.control、lib/postgresql/mysql_fdw.so

    su - omm
    cd plugins/mysql_fdw/
    cp mysql_fdw.so $GAUSSHOME/lib/postgresql
    cp mysql_fdw--1.1.sql $GAUSSHOME/share/postgresql/extension
    cp mysql_fdw.control $GAUSSHOME/share/postgresql/extension
  5. 连接到数据库,执行CREATE EXTENSION mysql_fdw;插件即可使用。

    MogDB=# CREATE EXTENSION mysql_fdw;
    CREATE EXTENSION

使用mysql_fdw


常见问题

  • 在MogDB上建立外表时,不会同步在MariaDB/MySQL Server上建表,需要自己利用MariaDB/MySQL Server的客户端连接MariaDB/MySQL Server建表。
  • 创建USER MAPPING时使用的MariaDB/MySQL Server用户需要有远程连接MariaDB/MySQL Server及对表相关操作的权限。使用外表前,可以在MogDB server所在的机器上,使用MariaDB/MySQL Server的客户端,使用对应的用户名密码确认能否成功连接MariaDB/MySQL Server并进行操作。
  • 对外表执行DML操作时,出现Can't initialize character set SQL_ASCII (path: compiled_in)错误。由于MariaDB不支持SQL_ASCII编码格式,目前只能通过修改MogDB database的编码格式解决该问题。修改database编码格式的方式为update pg_database set encoding = pg_char_to_encoding('UTF-8') where datname = 'postgres'; datname根据实际情况填写。注意修改完编码格式后,需要重新开启一个gsql会话,才能使mysql_fdw使用更新后的参数。也可以通过在执行gs_initdb时,使用--locale=LOCALE,指定默认的编码格式为非SQL_ASCII编码。

注意事项

  • 两个mysql外表间的SELECT JOIN不支持下推到MariaDB/MySQL Server执行,会被分成两条SQL语句传递到MariaDB/MySQL Server执行,然后在MogDB处汇总处理结果。
  • 不支持IMPORT FOREIGN SCHEMA语法。
  • 不支持对外表进行CREATE TRIGGER操作。
Copyright © 2011-2024 www.enmotech.com All rights reserved.