一、使用C/C++为Mysql开发扩展函数
1、安装mysql开发包:mysql-devel
sudo apt-get install libmysqld-dev # ubuntu
yum install mysql-devel # centos
默认安装在 /usr/include/mysql/ 中,包含了 mysql 插件开发所需的头文件
2、最简单的扩展函数
#include <stdio.h>
#include "mysql.h"
extern "C" long long 函数名(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error)
{
// return ....
}
// 初始化函数
extern "C" my_bool 函数名_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
{
return 0;
}
程序返回类型和 mysql 对应:
Varchar <-> char *
INTEGER <-> long long
REAL <-> double
3、编译(使用g++)
g++ -I /usr/include/mysql/ -shared -fPIC -o xxx.so xxx.cpp
-I 代表 include的头文件的位置
4、插件部署
cp xxx.so /usr/lib/mysql/plugin/
5、在 Mysql 中创建函数
CREATE FUNCTION 函数名 RETURNS 返回值 SONAME 'xxx.so';
若想删除,可以使用 Drop function 函数名;
二、使用C/C++扩展Hiredis和Redis交互
1、下载编译 Hiredis
git clone https://github.com/redis/hiredis.git
然后进入 Hiredis 目录:
make