2012-03-18 27 views
8

Aquí está un loco uno:MySQL UDF está instalado (pero no existe?)

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 .... eso es realmente muy divertido ....

El problema real es que el la función ya no se reconoce en las consultas. Intenté volver a compilar, reinstalar, reiniciar, etc., sin alegría. UDF es de aquí: http://www.mysqludf.org/lib_mysqludf_preg/index.php

Esto siguió después de cambiar a percona 5.5 desde mysql. UDF funcionó bien en mysql.

La pregunta es: ¿Cómo consigo la PREG UDF funcione después de actualizar de MySQL 5.5 a Percona?

RESPUESTA: Aquí está la respuesta en base a la punta del Barón a continuación:

Desde el 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 parece mirar en un directorio diferente que mi estándar de MySQL instalar.

MySql busca todos los complementos en/usr/lib/mysql/plugin. Percona estaba buscando en/usr/lib

La solución/plugin fue sencilla - que acabo de crear un enlace simbólico en/usr/lib en el directorio/usr/lib/mysql/plug-in de la siguiente manera:

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

Viola! - Todo carga bien ahora.

Respuesta

2

Lo consigo mucho. Para resolver este problema se debe:

DELETE FROM mysql.func WHERE name='PREG_REPLACE' 

y luego proceder con su estado de CREATE FUNCTION....

Cuestiones relacionadas