2012-03-18 36 views
8

Dưới đây là một điên một:Mysql UDF được cài đặt (nhưng không tồn tại?)

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 .... đó là thực sự khá hài hước ....

Vấn đề thực sự là chức năng không còn được nhận ra trong các truy vấn. Đã cố gắng biên dịch lại, cài đặt lại, khởi động lại, v.v. - không có niềm vui. UDF là từ đây: http://www.mysqludf.org/lib_mysqludf_preg/index.php

Điều này sau khi chuyển sang percona 5.5 từ mysql. UDF làm việc tốt trong mysql.

Câu hỏi là: Làm thế nào để tôi có được preg UDF để làm việc sau khi nâng cấp từ mysql để Percona 5,5?

ĐÁP: Dưới đây là câu trả lời dựa trên mũi của Baron dưới đây:

Từ 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 dường như nhìn vào một thư mục khác với MySql tiêu chuẩn của tôi cài đặt.

MySql tìm tất cả các plugin trong/usr/lib/mysql/plugin. Percona đang tìm kiếm trong/usr/lib

Các giải pháp/plugin đã được đơn giản - Tôi vừa tạo một liên kết tượng trưng trong/usr/lib vào/usr/lib/mysql/thư mục Plugin như sau:

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

Viola! - tất cả mọi thứ tải tốt ngay bây giờ.

Trả lời

2

Tôi nhận được rất nhiều điều. Để giải quyết vấn đề này, bạn nên:

DELETE FROM mysql.func WHERE name='PREG_REPLACE' 

Sau đó tiếp tục với tuyên bố CREATE FUNCTION... của bạn.

Các vấn đề liên quan