【问题标题】:Mysql UDF is installed (but doesn't exist?)Mysql UDF 已安装(但不存在?)
【发布时间】:2012-04-03 01:10:33
【问题描述】:

这是一个疯狂的:

mysql> CREATE FUNCTION PREG_REPLACE RETURNS STRING SONAME 'lib_mysqludf_preg.so';
ERROR 1125 (HY000): Function 'PREG_REPLACE' already exists
mysql> DROP FUNCTION preg_replace;
ERROR 1305 (42000): FUNCTION (UDF) preg_replace does not exist

嗯....其实挺有趣的....

真正的问题是该函数在查询中不再被识别。尝试重新编译、重新安装、重新启动等--不高兴。 UDF 来自这里:http://www.mysqludf.org/lib_mysqludf_preg/index.php

这是在从 mysql 切换到 percona 5.5 之后发生的。 UDF 在 mysql 中运行良好。

问题是:从 mysql 升级到 percona 5.5 后如何让 PREG UDF 工作?

答案:以下是基于 Baron 提示的答案:

来自mysql的error.log:

120319  9:32:06 Percona XtraDB (http://www.percona.com) 1.1.8-rel24.1 started; log sequence number 1547303885
120319  9:32:06 [ERROR] Can't open shared library 'lib_mysqludf_preg.so' (errno: 0 /usr/lib/plugin/lib_mysqludf_preg.so: cannot open shared object file: No such file or directory)

Percona 似乎在与我的标准 MySql 安装不同的目录中查找。

MySql 在 /usr/lib/mysql/plugin 中查找所有插件。 Percona 正在寻找 /usr/lib/plugin

解决方案很简单——我只是在 /usr/lib 中创建了一个指向 /usr/lib/mysql/plugin 目录的符号链接,如下所示:

me@host:/usr/lib/plugin$ sudo ln -s /usr/lib/mysql/plugin ./plugin

维奥拉! -- 现在一切正常。

【问题讨论】:

    标签: mysql user-defined-functions percona


    【解决方案1】:

    我得到了很多。要解决这个问题,您应该:

    DELETE FROM mysql.func WHERE name='PREG_REPLACE'
    

    然后继续您的CREATE FUNCTION... 声明。

    【讨论】:

    • 没有骰子Error Code: 1125. Function 'function name' already exists
    猜你喜欢
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 2021-05-11
    • 2017-08-31
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多