5.6.1 安装和卸载可加载函数

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

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

安装可加载函数

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

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

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

CREATE FUNCTION具有以下效果:

  • 它将函数加载到服务器中以使其立即可用。

  • 它在系统表中注册该函数, mysql.func以使其在服务器重启后保持不变。为此, CREATE FUNCTION需要 系统数据库 的INSERT权限 。mysql

可加载函数的自动加载发生在正常的服务器启动序列期间。服务器加载mysql.func表中注册的函数。如果服务器以该 --skip-grant-tables选项启动,则表中注册的功能不会加载且不可用。

卸载可加载函数

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

DROP FUNCTION metaphon;

DROP FUNCTION具有以下效果:

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

  • It removes the function from the mysql.func system table. For this reason, DROP FUNCTION requires the DELETE privilege for the mysql system database. With the function no longer registered in the mysql.func table, the server does not load the function during subsequent restarts.

While a loadable function is loaded, information about it is available from the mysql.func system table. See Section 5.6.2, “Obtaining Information About Loadable Functions”. CREATE FUNCTION adds the function to the table and DROP FUNCTION removes it.

Reinstalling or Upgrading Loadable Functions

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