这篇文章主要介绍“PostgreSQL怎么编译Windows下的mysql_fdw”,在日常操作中,相信很多人在PostgreSQL怎么编译Windows下的mysql_fdw问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PostgreSQL怎么编译Windows下的mysql_fdw”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
这里提供一个蹩脚的mysql_fdw在Windows下的编译方法,说蹩脚是因为这个步骤不是自动化的。所有的Windows编译脚本都在 src/tools/msvc 下边,有兴趣可以读一读,主要是Perl脚本,不难理解。
1、下载安装mysql客户端
https://dev.mysql.com/downloads/installer/
下载mysql-installer-web-community即可,不需要下载那个几百M的,安装时选择 MySQL Connector/C。
我把目录放在 C:\MySQL\6.1,所有的 include、lib都在这里。
2、下载mysql_fdw源代码,放到 contrib下,并且在Makefile增加
https://github.com/EnterpriseDB/mysql_fdw
ltree \ mysql_fdw \ oid2name \
3、修改 src/tools/msvc/Solution.pm
sub AddProject 在这里增加最后两行,用前两行参考位置,如果安装位置有区别请自行调整。
push @{ $self->{projects}->{$folder} }, $proj;
$proj->AddDir($initialdir) if ($initialdir);
if ($name eq 'mysql_fdw')
{
$proj->AddIncludeDir('C:\MySQL\6.1\include');
$proj->AddLibrary('C:\MySQL\6.1\lib\libmysql.lib');
}
4、修改 src/include/pg_config_manual.h 增加
#define _MYSQL_LIBNAME "C:\\MySQL\\6.1\\lib\\libmysql.dll"
5、修改 mysql_fdw.c
增加一个引用
#include "dynloader.h"
代码修改
mysql_dll_handle = dlopen(_MYSQL_LIBNAME, RTLD_LAZY | RTLD_DEEPBIND); 改为 mysql_dll_handle = dlopen(_MYSQL_LIBNAME, 1);
6、编译PG,参考我博客里的文章
有一堆警告,编译通过,测试:
flying=# create extension mysql_fdw;
CREATE EXTENSION
flying=# CREATE SERVER mysql_server
flying-# FOREIGN DATA WRAPPER mysql_fdw
flying-# OPTIONS (host '127.0.0.1', port '3306');
CREATE SERVER
flying=# CREATE USER MAPPING FOR "Quan Zongliang"
flying-# SERVER mysql_server
flying-# OPTIONS (username 'foo', password 'bar');
CREATE USER MAPPING
flying=# CREATE FOREIGN TABLE warehouse(
flying(# warehouse_id int,
flying(# warehouse_name text,
flying(# warehouse_created timestamp)
flying-# SERVER mysql_server
flying-# OPTIONS (dbname 'db', table_name 'warehouse');
CREATE FOREIGN TABLE
flying=# select * from warehouse;
ERROR: failed to connect to MySQL: Can't connect to MySQL server on '127.0.0.1' (10061)
因为我并没有装MySQL,连接会失败,但已经说明它是正常的。
到此,关于“PostgreSQL怎么编译Windows下的mysql_fdw”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/quanzl/blog/3072602