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ờ.