我已经通过CREATE FUNCTION命令创建了一个UDF,现在当我尝试删除它时,服务器就崩溃了。根据文档的说法,这是一个已知的问题:
若要升级与UDF关联的共享库,请发出DROP函数语句,升级共享库,然后发出CREATE函数语句。如果首先升级共享库,然后使用DROP函数,服务器可能会崩溃。
它确实会崩溃,甚至以后任何试图删除函数的尝试都会崩溃,即使我从插件目录中完全删除了DLL。在开发过程中,我不断地替换定义UDF函数的库。今天,我已经从头开始重新安装了一次MySQL,并且不想再这样做了。除了更加小心之外,我还能做些什么,例如手动清理mysql.*表以删除函数吗?
编辑:经过一些修补,数据库似乎已经确定为崩溃模式,直到我删除了违规的动态链接库,并在发出Error Code: 1305: FUNCTION [schema].[functionName] does not exist之后。如果我尝试将函数删除为root,则会得到相同的消息,但没有模式前缀。
SELECT * from mysql.func显示了该函数。如果手动删除记录,则会得到相同的1305错误。
发布于 2016-12-12 18:45:59
mysql模式中系统表中的许多数据在第一次触摸时就缓存在内存中。在此之后,手动修改表可能不会产生预期的效果,除非服务器重新启动。
对于授权表,提供了一种刷新任何缓存数据的机制-- FLUSH PRIVILIGES --但是对于其他表,如func和时区表,确保对表进行手动更改的唯一特定方法是重新启动服务器进程。
https://stackoverflow.com/questions/41069935
复制相似问题