+-

我正在尝试创建在 MySQL中使用的UDF.我已经使用gcc编译了该函数,并且可以正常工作.然后,我将.so文件移到我的插件目录中,并输入到MySQL服务器中.我尝试使用以下代码创建该函数:
CREATE FUNCTION mynew_udf RETURNS INT SONAME 'mynew_udf.so';
但是,服务器没有输出应有的错误,而是输出了以下错误:
ERROR 1127 (HY000): Can’t find symbol
‘mynew_udf’ in library
有谁知道解决方案或为什么会发生此错误?谢谢.
最佳答案
该错误确切说明了其含义:在共享库中找不到mynew_udf符号.
没有您的代码,我只能猜测为什么会这样.您的源代码是否具有如下所示的函数签名?
my_bool mynew_udf_init(UDF_INIT *, UDF_ARGS *args, char *message);
int mynew_udf(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error);
如第151 here行所述:“这些必须正确,否则mysqld将找不到该符号!”
如果您认为符号正确,也可以使用nm查看mynew_udf.so中的符号:
nm mynew_udf.so | grep mynew_udf
点击查看更多相关文章
转载注明原文:MySQL UDF创建中的错误1127 - 乐贴网