您好,登錄后才能下訂單哦!
這篇文章主要介紹“PostgreSQL怎么編譯Windows下的mysql_fdw”,在日常操作中,相信很多人在PostgreSQL怎么編譯Windows下的mysql_fdw問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PostgreSQL怎么編譯Windows下的mysql_fdw”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
這里提供一個蹩腳的mysql_fdw在Windows下的編譯方法,說蹩腳是因?yàn)檫@個步驟不是自動化的。所有的Windows編譯腳本都在 src/tools/msvc 下邊,有興趣可以讀一讀,主要是Perl腳本,不難理解。
1、下載安裝mysql客戶端
https://dev.mysql.com/downloads/installer/
下載mysql-installer-web-community即可,不需要下載那個幾百M(fèi)的,安裝時選擇 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 在這里增加最后兩行,用前兩行參考位置,如果安裝位置有區(qū)別請自行調(diào)整。
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)
因?yàn)槲也]有裝MySQL,連接會失敗,但已經(jīng)說明它是正常的。
到此,關(guān)于“PostgreSQL怎么編譯Windows下的mysql_fdw”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。