Jos*_*osh 8 mysql user-defined-functions percona
这是一个疯狂的:
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
Run Code Online (Sandbox Code Playgroud)
嗯....这实际上很有趣......
真正的问题是在查询中不再识别该函数.尝试重新编译,重新安装,重新启动等 - 没有快乐.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)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
中提琴! - 现在一切都很好.
我对此深有体会。为了解决这个问题你应该:
DELETE FROM mysql.func WHERE name='PREG_REPLACE'
Run Code Online (Sandbox Code Playgroud)
然后继续你的CREATE FUNCTION...陈述。
| 归档时间: |
|
| 查看次数: |
1759 次 |
| 最近记录: |