mysql udf插件开发

编写mysql插件

查看mysql插件so目录

进入mysql后执行如下指令

SHOW VARIABLES LIKE 'plugin_dir';

显示

plugin_dir =/usr/local/mysql/lib/plugin/

编译

gcc $(mysql_config --cflags) -shared -fPIC -o calc_distance_udf.so calc_distance_udf.c

将生成so拷到指定目录

cp calc_distance_udf.so /usr/local/mysql/lib/plugin/

进入mysql创建funcation

CREATE FUNCTION calc_distance_udf 
   RETURNS REAL
   SONAME "calc_distance_udf.so";

注意

如果以上创建function出错的时候要检查下so文件的权限是否可读。

查看funcation
USE mysql;
SELECT * FROM func;

测试

select calc_distance_udf(1.0, 2.0, 3.0, 4.0);

参考教程

http://blog.loftdigital.com/blog/how-to-write-mysql-functions-in-c

注意:

mysql udf的执行方式是mysql程序启动的时候加载so文件到内存,有FUNCATION调用的时候,执行so里面的程序。所以更新so文件后要重启mysql服务。

如果使用Ubuntu的apt直接安装mysql,编译的时候会出现找不到相应的头文件,执行以下命令

sudo apt-get install libmysql++-dev

还有在不同的平台下要使用对应的编译器重新编译,32位对应32位,64位对应64位。

自己编写DEMO

转载于:https://www.cnblogs.com/QUSIR/p/6626699.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值