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

うーん....それは実際には非常に面白いです....

本当の問題があることです関数はもはやクエリで認識されません。再コンパイル、再インストール、再起動などを試しました - 喜びはありません。 UDFはここからです:http://www.mysqludf.org/lib_mysqludf_preg/index.php

これは、mysqlからpercona 5.5に切り替えた後に続きます。 UDFはmysqlで正常に動作しました。

質問です:にはどうすればPREG UDFはpercona 5.5にMySQLからのアップグレード後に動作するのですか?

ANSWER:ここでは、以下の男爵の先端に基づいて回答です: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の/ pluginディレクトリには/ 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...声明を進めます。

関連する問題