我们有一个 5.5.28-29.3-log mysql master,其中安装了 percona UDF,包括 murmur_hash。
我们在新主机上安装了 mysql,但我似乎找不到从哪里获取 UDF。本文档建议它们应该内置到 mysql 5.5.8-20.0(及更高版本?):
http://www.percona.com/doc/percona-server/5.5/management/udf_percona_toolkit.html
5.5.8-20.0:开始分发 libfnv1a_udf、libfnv_udf 和 libmurmur_udf。
但它们肯定不在 /usr/lib/mysql/plugin 中:
/usr/lib/mysql/plugin$ ls lib*
libdaemon_example.so
在主服务器上:
mysql> select murmur_hash('12345');
+----------------------+
| murmur_hash('12345') |
+----------------------+
| -8902960671973102832 |
+----------------------+
1 row in set (0.00 sec)
在从服务器上:
mysql> select murmur_hash('adsf');
ERROR 1305 (42000): FUNCTION murmur_hash does not exist
我感觉我忽略了一些明显的东西。
DISTRIB_DESCRIPTION="Ubuntu 10.04.4 LTS"
答案1
似乎这个错误是,即 UDF 没有与我们使用的 mysql 版本(即 5.5.36-34.0-632.lucid-log)一起分发:
https://bugs.launchpad.net/percona-server/+bug/1294216
为了解决这个问题,我们刚刚升级到最新版本。