首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL udf创建中的错误1127

MySQL udf创建中的错误1127
EN

Stack Overflow用户
提问于 2011-06-29 15:27:19
回答 2查看 4K关注 0票数 3

我正在尝试创建一个用于MySQL的UDF。我用gcc编写了这个函数,它工作正常。然后,我将.so文件移动到插件目录中,并输入到MySQL服务器。我试图使用以下代码创建函数:

代码语言:javascript
复制
CREATE FUNCTION mynew_udf RETURNS INT SONAME 'mynew_udf.so';

但是,服务器没有按应有的方式创建函数,而是输出以下错误:

错误1127 (HY000):在库中找不到符号'mynew_udf‘

有人知道这个问题的解决方案吗?或者为什么会发生这个错误?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2011-06-29 17:32:41

这个错误的意思正是它所说的:在共享库中找不到mynew_udf符号。

如果没有您的代码,我只能猜测为什么会出现这种情况。您的源代码是否有类似于此的函数签名?

代码语言:javascript
复制
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行所指出的,这里:“这些必须正确,否则mysqld将找不到符号!”

如果您认为您有正确的符号,也可以使用nm查看mynew_udf.so中的符号。

代码语言:javascript
复制
nm mynew_udf.so | grep mynew_udf
票数 4
EN

Stack Overflow用户

发布于 2013-11-18 18:33:03

使用这种语法可以很好地工作:

从“开始”文件夹:

gcc -shared -lstdc++ -fPIC -DMYSQL_DYNAMIC_PLUGIN -I /usr/include/ -I /usr/local/include/ -I /opt/jasperserver-4.5.0-0/mysql/include/ -o nomefile.so nomefile.cc cp nomefile.so /PATH/mysql/lib/plugin/

DB连接字符串

/PATH/mysql/bin/mysql -uroot -p测试 MYSQL>创建聚合函数示例返回真实的SONAME 'udf_example.so';

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6523166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档