lib_mysqludf_sys安装
下载地址:https://github.com/mysqludf/lib_mysqludf_sys
目录结构如下:
[root@MiWiFi-R1D-srv lib_mysqludf_sys-master]# ls
install.sh lib_mysqludf_sys.html lib_mysqludf_sys.sql
lib_mysqludf_sys.c lib_mysqludf_sys.so Makefile
编译源码
修改Makefile文件, 根据自身系统的MySQL环境而定
原Makefile
LIBDIR=/usr/lib
install:
gcc -Wall -I/usr/include/mysql -I. -shared lib_mysqludf_sys.c -o $(LIBDIR)/lib_mysqludf_sys.so
修改后Makefile:
LIBDIR=/usr/lib64/mysql/plugin
install:
gcc -fPIC -Wall -I/usr/include/mysql/server -I/usr/include/mysql/server/private -I. -shared lib_mysqludf_sys.c -o $(LIBDIR)/lib_mysqludf_sys.so
去掉install.sh中mysql 密码:
mysql -u root -p < lib_mysqludf_sys.sql
运行install.sh。
lib_mysqludf_sys安装问题解决
1.mysql开发环境未准备充分,报错误“lib_mysqludf_sys.c:40:10: 致命错误:my_global.h:没有那个文件或目录。”。
解决办法:yum install mariadb-devel。
注意,不是安装mysql-devel,它也没有my_global.h,必须安装mariadb-devel。
2.务必在Makefile,gcc 后面加上 -fPIC ,否则会出现如下错误: /usr/bin/ld: /tmp/ccgYuWnQ.o: relocation R_X86_64_32 against `.rodata’ can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: 最后的链结失败: 输出不可表示的节 collect2: 错误:ld 返回 1。
3.务必在Makefile,gcc 后面加上或者修改为-I/usr/include/mysql/server -I/usr/include/mysql/server/private。只有这些目录才有编译所需要mysql文件。