MySQL Error number: MY-014032; Symbol: ER_UDF_DEREGISTRATION; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: MY-014032; Symbol: ER_UDF_DEREGISTRATION; SQLSTATE: HY000
Message: Cannot unregister function ‘%s’. Please check if it was registered properly in the first place.
错误说明
MySQL的ER_UDF_DEREGISTRATION错误代表用户自定义功能(UDF)被deregistered,也就是被取消,受影响的常见有以下两种:
1. 如果针对某个MySQL实例,在调用服务器初始化期间,没有显式调用mysqld –user-defined-functions=name,那么在重新启动服务器过程中,便可能出现此错误;
2. 当MySQL实例正在重新启动期间,执行DROP FUNCTION命令(或者执行DROP USER-DEFINED FUNCTIONS),它也会引起UDF被取消,而这会导致出现ER_UDF_DEREGISTRATION错误。
常见案例
尽管在MySQL中有数量庞大的可用用户自定义函数,其中某些已经可以很好地嵌入SQL语句中,对于查询和更新数据库中的数据都能起到一定的作用。但是,在一些特殊的情况下,当用户希望特定的UDF注册和取消,而不改变整个MySQL实例的状态,从而避免重新启动服务器的情况,可能会导致ER_UDF_DEREGISTRATION错误产生。因此,当尝试deregister某个UDF(以及某用户在重新启动重新启动期间对DROP FUNCTION所做的决定),这个错误也会被激活,最终给用户带来困扰。
解决方法
针对ER_UDF_DEREGISTRATION,最终解决方案有两个:
1. 重新启动MySQL实例:在服务器初始化的过程中,执行mysqld –user-defined-functions=name以重新注册UDF;
2. 在UDF已经被取消后,重新执行CREATE FUNCTION命令:这将使UDF重新注册起来,此注册只对这个MySQL实例有效。