2012-03-18 4 views
8

Вот ненормальная:Mysql UDF (но не существует?)

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 

Um .... это на самом деле очень смешно ....

Реальная проблема заключается в том, что функция больше не распознается в запросах. Пробовал перекомпилировать, переустанавливать, перезапускать и т. Д. - без радости. UDF отсюда: http://www.mysqludf.org/lib_mysqludf_preg/index.php

Это последовало после перехода на percona 5.5 из mysql. UDF отлично работал в mysql.

Вопрос: Как получить PREG UDF работать после обновления MySQL до Percona 5.5?

ОТВЕТ: Вот ответ, основанный на кончике барона ниже:

из 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/плагин следующим образом:

[email protected]:/usr/lib/plugin$ sudo ln -s /usr/lib/mysql/plugin ./plugin 

Виола! - сейчас все загружается.

ответ

2

Я получаю это много. Для того, чтобы решить эту проблему, вы должны:

DELETE FROM mysql.func WHERE name='PREG_REPLACE' 

А затем продолжить CREATE FUNCTION... заявление.

Смежные вопросы