2012-03-18 1 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 

음을 .... 그

진짜 문제는 그입니다 .... 사실은 꽤 재미있다 함수는 더 이상 u 리에서 인식되지 않습니다. 다시 컴파일, 재설치, 재시동 등을 시도했습니다. 기쁨이 없습니다. UDF는 여기에서 있습니다 : http://www.mysqludf.org/lib_mysqludf_preg/index.php

이것은 mysql에서 percona 5.5로 전환 한 뒤입니다. UDF는 mysql에서 잘 작동합니다.

질문은 다음과 같습니다가 어떻게이 레그 UDF 5.5을 percona MySQL에서 업그레이드 한 후 작업을 어떻게해야합니까?

답변 : 여기 아래 남작의 팁에 따라 대답 :에서

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 디렉토리/플러그인을

솔루션에 간단보고 있었다 - 다음과 같이 난 그냥은/usr/lib 디렉토리/mysql을/플러그인 디렉토리를/usr/lib에 심볼릭 링크를 생성 :

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

비올라! - 이제 모든 것이 잘 돌아갑니다.

답변

2

나는 많이 얻는다. 당신이해야이 문제를 해결하려면

DELETE FROM mysql.func WHERE name='PREG_REPLACE' 

을 다음 CREATE FUNCTION... 문으로 진행합니다.

관련 문제