Skip to content

QUSIR/mysql_udf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

#编写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位。

About

mysql_udf

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages