5.7.1 安装和卸载可加载函数

可加载函数,顾名思义,必须加载到服务器中才能使用。MySQL 支持在服务器启动时自动加载函数,然后手动加载。

加载可加载函数时,有关它的信息可用,如 第 5.7.2 节“获取有关可加载函数的信息”中所述。

安装可加载函数

要手动加载可加载函数,请使用该 CREATE FUNCTION语句。例如:

CREATE FUNCTION metaphon
  RETURNS STRING
  SONAME 'udf_example.so';

文件基本名称取决于您的平台。通用后缀 .so用于 Unix 和类 Unix 系统, .dll用于 Windows。

CREATE FUNCTION具有以下效果:

可加载函数的自动加载发生在正常的服务器启动序列中:

  • mysql.func 安装表中 注册的功能。

  • 启动时安装的组件或插件可能会自动安装相关功能。

  • 自动功能安装将功能添加到性能模式 user_defined_functions表中,该表提供有关已安装功能的运行时信息。

如果服务器以该 --skip-grant-tables选项启动,则mysql.func表中注册的功能不会加载且不可用。这不适用于组件或插件自动安装的功能。

卸载可加载函数

要删除可加载函数,请使用该 DROP FUNCTION语句。例如:

DROP FUNCTION metaphon;

DROP FUNCTION具有以下效果:

  • 它卸载函数以使其不可用。

  • 它从 mysql.func系统表中删除函数。为此, DROP FUNCTION需要 系统数据库的DELETE权限 。mysql由于该函数不再在mysql.func 表中注册,服务器在随后的重新启动期间不会加载该函数。

  • 它从 Performance Schema 表中删除该函数,该 user_defined_functions表提供有关已安装可加载函数的运行时信息。

DROP FUNCTION不能用于删除由组件或插件自动安装的可加载函数,而不是使用 CREATE FUNCTION. 当安装它的组件或插件被卸载时,这样的功能也会自动删除。

重新安装或升级可加载函数

要重新安装或升级与可加载函数关联的共享库,请发出 DROP FUNCTION语句,升级共享库,然后发出 CREATE FUNCTION语句。如果先升级共享库再使用 DROP FUNCTION,服务器可能会意外关闭。