今天调试应用程序,在程序中使用了mysql的udf函数插件和触发器来自动更新memcache的内存记录
由于测试需要,想要更新udf动态库,同时使用新的动态库名称。原以为将原有的动态库插件删除,将新的动态库插件拷贝到mysql的插件目录即可。
结果测试不行,发现找不到udf函数。
在数据库中mysql.func表中存在函数相关信息。试图修改成新的动态库名称,修改完后仍旧不行,还是找不到udf函数。
尝试想drop函数后重新create。结果在执行drop function时提示没有function,那么我就执行create function结果又提示function已经存在。
几经周折,终于通过如下步骤解决:
1、将原有删除的动态库重新恢复
2、修改mysql.func表成原有动态库名称
3、重新启动mysql
4、drop function
5、停止mysql
6、将旧动态库删除,拷贝新动态库
7、启动mysql
8、create function
9、OK