gpt4 book ai didi

Mysql UDF 已安装(但不存在?)

转载 作者:可可西里 更新时间:2023-11-01 06:33:59 27 4
gpt4 key购买 nike

这是一个疯狂的例子:

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 目录的符号链接(symbolic link),如下所示:

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

中提琴! -- 现在一切都加载得很好。

最佳答案

我明白了很多。要解决此问题,您应该:

DELETE FROM mysql.func WHERE name='PREG_REPLACE'

然后继续您的 CREATE FUNCTION... 语句。

关于Mysql UDF 已安装(但不存在?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9755103/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com