在PostgreSQL中设置MySQL外部数据包装器

4
2个回答

12
我可以用以下方式完成。
安装包:
sudo apt-get install postgresql-9.5-mysql-fdw

将扩展名添加到数据库中:

CREATE EXTENSION mysql_fdw;

将MySQL服务器添加到PostgreSQL:

CREATE SERVER mysql_server FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'localhost', port '3306');

创建一个用户以访问数据库:

CREATE USER MAPPING FOR postgres SERVER mysql_server OPTIONS (username 'root', password 'passwordToConnect');

从另一台服务器导入模式表

IMPORT FOREIGN SCHEMA mySchema LIMIT TO (tableName) FROM SERVER mysql_server INTO public;

从另一个服务器导入所有Schema表

IMPORT FOREIGN SCHEMA mySchema FROM SERVER mysql_server INTO public;

我希望我已经帮到你了。


3
您链接到了ODBC外部数据包装器odbc_fdw。您可以将其用于MySQL,但是如果您只想使用MySQL,则应该改用mysql_fdw。这样您就不必搞乱ODBC。

方便地,mysql_fdw的README文件包含安装和配置的详细说明,因此您设置它时应该没问题;我不会在这里重复这些说明。


感谢您的回复并指出错误的URL。根据README文件,我无法推断出安装程序。第一步解释为“安装MySQL,或者只安装C客户端库”...那么我该如何安装库呢? - Kate
@Kate 这取决于你的操作系统。你用的是什么?(如果可能的话,在所有问题中提到这一点以及你的PostgreSQL版本会很好)。你需要安装mysql客户端库。在Fedora上,可以使用yum install community-mysql-develyum install mariadb-devel来安装。在CentOS/RHEL上,使用yum install mysql-devel。在Debian/Ubuntu上,使用apt-get install libmysqlclient-dev - Craig Ringer
谢谢Craig,我正在运行CentOS。根据您的建议,我不得不安装mysql-devel,以及postgresql93-devel.x86_64和gcc。之后,将Makefile、mysql_fdw.c、mysql_fdw--1.0.sql和mysql_fdw.control下载到临时目录。接下来,将mysql_fdw--1.0.sql和mysql_fdw.control复制到/usr/pgsql-9.3/share/extension。此时,我能够执行"PATH=/usr/pgsql-9.3/bin/:/usr/bin/:$PATH make USE_PGXS=1"。现在,在psql中执行"CREATE EXTENSION mysql_fdw"时,我收到"ERROR: could not access file "$libdir/mysql_fdw": No such file or directory"的错误提示。 - Kate
听起来你忘记了执行 make install 命令 - 或者在这种情况下可能是 sudo PATH=/usr/pgsql-9.3/bin:$PATH make install。顺便说一句,为了以后的参考,你可以使用 git clone 命令克隆整个代码库,而不是下载单个文件。 - Craig Ringer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接