编译安装mysql_fdw_greenplum安装mysql_fdw插件

多方整理,网上坑多可以看我这个:

首先原因:mysql_fdw 有两个版本有一个是Gitlab下载版

有一个是专门的 mysql_fdw_greenplum-master 版

我安装成功运行的是 mysql_fdw_greenplum-master 这个版本

主要原因是标准的mysql_fdw依赖是PostgreSQL9.5以上,所以在安装的时候会报如下错误!

Makefile:55: *** PostgreSQL 9.5, 9.6 10 11 12 is required to compile this extension. Stop.

而修改后的mysql_fdw_greenplum-master 在没有依赖的情况下会报如下错误

Makefile:55: *** PostgreSQL 9.3, 9.4, 9.5, 9.6 10 11 12 is required to compile this extension. Stop.

也就是说这个版本是修改过的用于9.3 9.4的PostgreSQL!!!!

安装过程:

下载mysql的源码

开始安装

每服务器均进行以下操作

切换至gpadmin账户

export PATH=/app/fdw/mysql-5.7.28-linux-glibc2.12-x86_64/bin:$PATH

检查export $PATH是否有greenplum bin目录,好像没有gp集群也无法正常运行。

进入mysql_fdw_greenplum-master目录

运行

make USE_PGXS=1

make USE_PGXS=1 install

[gpadmin@bogon mysql_fdw_greenplum-master]$ export PATH=/app/fdw/mysql-5.7.28-linux-glibc2.12-x86_64/bin:$PATH

[gpadmin@bogon mysql_fdw_greenplum-master]$ make USE_PGXS=1

gcc -m64 -Wall -Wmissing-prototypes -Wpointer-arith -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -fno-aggressive-loop-optimizations -Wno-unused-but-set-variable -Wno-address -m64 -O3 -fargument-noalias-global -fno-omit-frame-pointer -g -std=gnu99 -Werror=uninitialized -Werror=implicit-function-declaration -fPIC -I/app/fdw/mysql-5.7.28-linux-glibc2.12-x86_64/include -D _MYSQL_LIBNAME=\"libmysqlclient.so\" -I. -I./ -I/usr/local/greenplum-db-6.7.1/include/postgresql/server -I/usr/local/greenplum-db-6.7.1/include/postgresql/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/tmp/build/f8c7ee08/gpdb_src/gpAux/ext/rhel7_x86_64/include -c -o connection.o connection.c

gcc -m64 -Wall -Wmissing-prototypes -Wpointer-arith -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -fno-aggressive-loop-optimizations -Wno-unused-but-set-variable -Wno-address -m64 -O3 -fargument-noalias-global -fno-omit-frame-pointer -g -std=gnu99 -Werror=uninitialized -Werror=implicit-function-declaration -fPIC -I/app/fdw/mysql-5.7.28-linux-glibc2.12-x86_64/include -D _MYSQL_LIBNAME=\"libmysqlclient.so\" -I. -I./ -I/usr/local/greenplum-db-6.7.1/include/postgresql/server -I/usr/local/greenplum-db-6.7.1/include/postgresql/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/tmp/build/f8c7ee08/gpdb_src/gpAux/ext/rhel7_x86_64/include -c -o option.o option.c

gcc -m64 -Wall -Wmissing-prototypes -Wpointer-arith -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -fno-aggressive-loop-optimizations -Wno-unused-but-set-variable -Wno-address -m64 -O3 -fargument-noalias-global -fno-omit-frame-pointer -g -std=gnu99 -Werror=uninitialized -Werror=implicit-function-declaration -fPIC -I/app/fdw/mysql-5.7.28-linux-glibc2.12-x86_64/include -D _MYSQL_LIBNAME=\"libmysqlclient.so\" -I. -I./ -I/usr/local/greenplum-db-6.7.1/include/postgresql/server -I/usr/local/greenplum-db-6.7.1/include/postgresql/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/tmp/build/f8c7ee08/gpdb_src/gpAux/ext/rhel7_x86_64/include -c -o deparse.o deparse.c

gcc -m64 -Wall -Wmissing-prototypes -Wpointer-arith -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -fno-aggressive-loop-optimizations -Wno-unused-but-set-variable -Wno-address -m64 -O3 -fargument-noalias-global -fno-omit-frame-pointer -g -std=gnu99 -Werror=uninitialized -Werror=implicit-function-declaration -fPIC -I/app/fdw/mysql-5.7.28-linux-glibc2.12-x86_64/include -D _MYSQL_LIBNAME=\"libmysqlclient.so\" -I. -I./ -I/usr/local/greenplum-db-6.7.1/include/postgresql/server -I/usr/local/greenplum-db-6.7.1/include/postgresql/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/tmp/build/f8c7ee08/gpdb_src/gpAux/ext/rhel7_x86_64/include -c -o mysql_query.o mysql_query.c

gcc -m64 -Wall -Wmissing-prototypes -Wpointer-arith -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -fno-aggressive-loop-optimizations -Wno-unused-but-set-variable -Wno-address -m64 -O3 -fargument-noalias-global -fno-omit-frame-pointer -g -std=gnu99 -Werror=uninitialized -Werror=implicit-function-declaration -fPIC -I/app/fdw/mysql-5.7.28-linux-glibc2.12-x86_64/include -D _MYSQL_LIBNAME=\"libmysqlclient.so\" -I. -I./ -I/usr/local/greenplum-db-6.7.1/include/postgresql/server -I/usr/local/greenplum-db-6.7.1/include/postgresql/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/tmp/build/f8c7ee08/gpdb_src/gpAux/ext/rhel7_x86_64/include -c -o mysql_fdw.o mysql_fdw.c

gcc -m64 -Wall -Wmissing-prototypes -Wpointer-arith -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -fno-aggressive-loop-optimizations -Wno-unused-but-set-variable -Wno-address -m64 -O3 -fargument-noalias-global -fno-omit-frame-pointer -g -std=gnu99 -Werror=uninitialized -Werror=implicit-function-declaration -fPIC -shared -o mysql_fdw.so connection.o option.o deparse.o mysql_query.o mysql_fdw.o -L/usr/local/greenplum-db-6.7.1/lib -L/tmp/build/f8c7ee08/gpdb_src/gpAux/ext/rhel7_x86_64/lib -Wl,--as-needed -Wl,-rpath,'/usr/local/greenplum-db-6.7.1/lib',--enable-new-dtags

[gpadmin@bogon mysql_fdw_greenplum-master]$ make USE_PGXS=1 install

/usr/bin/mkdir -p '/usr/local/greenplum-db-6.7.1/lib/postgresql'

/usr/bin/mkdir -p '/usr/local/greenplum-db-6.7.1/share/postgresql/extension'

/usr/bin/mkdir -p '/usr/local/greenplum-db-6.7.1/share/postgresql/extension'

/usr/bin/install -c -m 755 mysql_fdw.so '/usr/local/greenplum-db-6.7.1/lib/postgresql/mysql_fdw.so'

/usr/bin/install -c -m 644 mysql_fdw.control '/usr/local/greenplum-db-6.7.1/share/postgresql/extension/'

/usr/bin/install -c -m 644 mysql_fdw--1.0.sql mysql_fdw--1.1.sql mysql_fdw--1.0--1.1.sql '/usr/local/greenplum-db-6.7.1/share/postgresql/extension/'

cp `mysql_config --variable=pkglibdir`/libmysqlclient.so `pg_config --libdir`/

至此安装完毕!进入服务器设置

[gpadmin@ares mysql_fdw_greenplum-master]$ psql

psql (9.4.24)

Type "help" for help.

-- 创建mysql_fdw外部插件

gp_sydb=# CREATE EXTENSION mysql_fdw;

CREATE EXTENSION

-- 创建链接server源

gp_sydb=# CREATE SERVER mysql_server1

gp_sydb-# FOREIGN DATA WRAPPER mysql_fdw

gp_sydb-# OPTIONS (host '192.168.10.xxx', port '3306');

-- 添加用户的映射

CREATE SERVER

gp_sydb=# CREATE USER MAPPING FOR gpadmin

gp_sydb-# SERVER mysql_server1

gp_sydb-# OPTIONS (username 'root', password 'xxxxx');

CREATE USER MAPPING

- 创建映射外部表

CREATE FOREIGN TABLE test_tabase(

id int,

name text)

SERVER mysql_server

OPTIONS (dbname 'tabase', table_name 'test_tabase');

-- 查询表的数据

select count(*) from test_tabase;

-- 删除信息

drop SERVER mysql_server CASCADE;

在centos6.x版本下报错!!!!

报错

cc1: 错误:无法识别的命令行选项“-fexcess-precision=standard”

cc1: 错误:无法识别的命令行选项“-fno-aggressive-loop-optimizations”

make: *** [connection.o] 错误 1

安装gcc

[root@websvr4 ryyf]# gcc -v

使用内建 specs。

目标:x86_64-redhat-linux

配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux

线程模型:posix

gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)

参考文档

1、下载

mkdir -p /root/gcc

cd /root/gcc

wget -c http://mirror.koddos.net/gcc/releases/gcc-4.8.5/gcc-4.8.5.tar.bz2

2、解压

tar jxf gcc-4.8.5.tar.bz2

cd gcc-4.8.5

3、预下载依赖源码包

./contrib/download_prerequisites

配置编译文件

./configure --prefix=/opt/gcc --enable-checking=release --enable-languages=c,c++ --disable-multilib # 机器是64位的,就不使用32位的包了,--disable-multilib

5、编译

make -j4 #如果有多核CPU尽量都用上,要编译很久

可能会报错 直接运行make

6、安装

make install

7、添加环境变量

echo 'export PATH=/opt/gcc/bin:$PATH' >> /etc/profile

8、生效变量

source /etc/profile

9、查看版本

gcc -v

10、有些代码里面还会用到cc这个命令来调用gcc ,而我们自己编译的目录下没有cc这个执行程序,可以做个软链接就可以了。

cd /opt/gcc/bin && ln -s gcc cc

wget https://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.gz

[gpadmin@imagesvr1 mysql_fdw_greenplum-master]$ gcc -v

使用内建 specs。

COLLECT_GCC=gcc

COLLECT_LTO_WRAPPER=/opt/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.8.5/lto-wrapper

目标:x86_64-unknown-linux-gnu

配置为:./configure --prefix=/opt/gcc --enable-checking=release --enable-languages=c,c++ --disable-multilib

线程模型:posix

gcc 版本 4.8.5 (GCC)

这个编译的时间真长……………………

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值