10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 36.3 mb
PDF (A4)- 36.3 mb
手册页(TGZ)- 236.9 kb
手册页(邮政编码)- 348.5 kb
信息(Gzip)- 3.4 mb
信息(邮政编码)- 3.4 mb
本手册节选

5.5.1安装和卸载插件

在使用服务器插件之前,必须将它们加载到服务器中。MySQL支持在服务器启动和运行时加载插件。也可以在启动时控制加载插件的激活状态,并在运行时卸载它们。

当一个插件被加载时,关于它的信息可以在第5.5.2节“获取服务器插件信息”

安装插件

在使用服务器插件之前,必须使用以下方法之一安装服务器插件。的描述,plugin_name表示插件名称,例如innodbcsv,或validate_password

内置插件

内置插件会被服务器自动识别。默认情况下,服务器在启动时启用插件。方法可以更改这一点--plugin_name(=activation_state选择。

mysql中注册的插件。插件系统表

mysql.plugin系统表作为插件的注册表(内置插件除外,不需要注册)。在正常的启动顺序中,服务器加载在表中注册的插件。默认情况下,对于从mysql.plugin表,服务器也启用插件。可以使用--plugin_name(=activation_state选择。

参数启动服务器——skip-grant-tables选项中注册的插件mysql.plugin表未加载且不可用。

用命令行选项命名的插件

插件库文件中的插件可以在服务器启动时用——plugin-load——plugin-load-add,或——early-plugin-load选择。通常,对于在启动时加载的插件,服务器也会启用该插件。可以使用--plugin_name(=activation_state选择。

——plugin-load而且——plugin-load-add在服务器启动顺序中,内置插件和存储引擎初始化后,选项将加载插件。的——early-plugin-load选项用于加载必须在初始化内置插件和存储引擎之前可用的插件。

每个插件加载选项的值是一个分号分隔的列表plugin_library而且的名字plugin_library值。每一个plugin_library是包含插件代码的库文件的名称吗的名字要加载的插件的名称。如果一个插件库没有前面的任何插件名,服务器将加载该插件库中的所有插件。使用前面的插件名,服务器只从库中加载命名的插件。控件命名的目录中查找插件库文件plugin_dir系统变量。

插件加载选项不注册任何插件mysql.plugin表格对于后续的重新启动,只有当——plugin-load——plugin-load-add,或——early-plugin-load给出了。也就是说,该选项为单个服务器调用生成一个一次性的插件安装操作。

——plugin-load——plugin-load-add,——early-plugin-load使插件即使加载——skip-grant-tables,这将导致服务器忽略mysql.plugin表)。——plugin-load——plugin-load-add,——early-plugin-load也允许在启动时加载不能在运行时加载的插件。

——plugin-load-add选择的补充——plugin-load选择:

例如,这些选项:

——plugin-load = x plugin-load-add = y

等同于以下选项:

——plugin-load-add = x plugin-load-add = y

和也等价于这个选项:

——plugin-load = " x, y "

但这些选项:

——plugin-load-add = y plugin-load = x

等同于这个选项:

——plugin-load = x
用INSTALL PLUGIN语句安装的插件

插件库文件中的插件可以在运行时用安装插件声明。语句还将插件注册到mysql.plugin表,以使服务器在后续重启时加载它。由于这个原因,安装插件要求插入特权的mysql.plugin表格

插件库文件名取决于你的平台。常见的后缀是所以对于Unix和类Unix系统,. dll对于Windows。

例子:——plugin-load-add选项在服务器启动时安装插件。安装一个名为并且从一个插件库文件命名somepluglib.so,使用这些行my.cnf文件:

(mysqld) plugin-load-add =并且= somepluglib.so

在这种情况下,插件没有注册mysql.plugin.方法重新启动服务器——plugin-load-add选项导致插件在启动时不加载。

或者,安装插件语句导致服务器在运行时从库文件加载插件代码:

安装插件myplugin SONAME 'somepluglib.so';

安装插件也会引起永久插件注册:插件在mysql.plugin表,以确保服务器在后续重启时加载它。

许多插件可以在服务器启动或运行时加载。但是,如果一个插件被设计成必须在服务器启动期间加载和初始化,则尝试在运行时使用安装插件产生一个错误:

mysql>安装插件myplugin SONAME 'somepluglib.so';错误1721 (HY000):插件“myplugin”被标记为不可动态安装。您必须停止服务器才能安装它。

在这种情况下,您必须使用——plugin-load——plugin-load-add,或——early-plugin-load

如果一个插件的命名都使用——plugin-load——plugin-load-add,或——early-plugin-load选项和(作为前面的安装插件声明)mysql.plugin表中,服务器启动,但是将这些消息写到错误日志中:

(错误)函数的plugin_name'已经存在[警告]无法加载命名为'的插件'plugin_name“用soname”plugin_object_file”。

控制插件激活状态

如果服务器在插件启动时知道它(例如,因为插件是用——plugin-load-add选项或注册在mysql.plugin表),服务器默认加载并启用插件。控件可以控制这样一个插件的激活状态--plugin_name(=activation_state启动选项,plugin_name是插件的名称影响,如innodbcsv,或validate_password.与其他选项一样,选项名中破折号和下划线可以互换。此外,激活状态值不区分大小写。例如,——my_plugin =而且——my-plugin =是等价的。

  • --plugin_name=下

    告诉服务器禁用插件。这对于某些内置插件可能是不可能的,例如mysql_native_password

  • --plugin_name(=)

    告诉服务器启用插件。(将选项指定为--plugin_name没有值也有同样的效果。)如果插件初始化失败,服务器将在禁用插件的情况下运行。

  • --plugin_name=力

    告诉服务器启用插件,但是如果插件初始化失败,服务器不会启动。换句话说,这个选项强制服务器在启用插件的情况下运行,或者根本不运行插件。

  • --plugin_name= FORCE_PLUS_PERMANENT

    就像,但另外防止插件在运行时卸载。如果用户试图这样做卸载插件,出现错误。

插件激活状态在LOAD_OPTION列的INFORMATION_SCHEMA。插件表格

假设CSV黑洞,存档是内置的可插拔存储引擎,您希望服务器在启动时加载它们,但需要满足以下条件:如果CSV初始化失败,必须要求黑洞初始化成功,并且应该禁用存档.要实现这一点,可以在选项文件中使用以下语句:

[mysqld] csv=ON黑洞=FORCE archive=OFF

——使plugin_name选项格式是--plugin_name=对.的——禁用plugin_name而且——跳过plugin_name选项格式是--plugin_name=下

如果一个插件被禁用,要么显式与或者隐含的,因为它被启用了但是初始化失败,服务器操作方面需要插件更改。例如,如果插件实现了一个存储引擎,存储引擎的现有表将无法访问,并且尝试为存储引擎创建新表将导致使用默认存储引擎的表,除非NO_ENGINE_SUBSTITUTION启用SQL模式会导致错误发生。

禁用插件可能需要调整其他选项。例如,如果您使用——skip-innodb禁用InnoDB,其他innodb_xxx启动时可能需要省略一些选项。此外,由于InnoDB是默认的存储引擎,它不能启动,除非您指定另一个可用的存储引擎——default_storage_engine.您还必须设置——default_tmp_storage_engine

卸载插件

在运行时,卸载插件语句禁用并卸载服务器已知的插件。语句卸载插件并将其从mysql.plugin系统表,如果它注册在那里。由于这个原因,卸载插件声明要求删除特权的mysql.plugin表格由于该插件不再在表中注册,服务器在随后的重启过程中不会加载该插件。

卸载插件可以卸载插件不管它是否在运行时加载安装插件或者在启动时使用插件加载选项,取决于以下条件:

  • 它不能卸载内置到服务器中的插件。可以将它们标识为具有库名称的的输出中INFORMATION_SCHEMA。插件显示插件

  • 它不能卸载服务器启动时使用的插件--plugin_name= FORCE_PLUS_PERMANENT,防止在运行时卸载插件。这些可以从LOAD_OPTION列的INFORMATION_SCHEMA。插件表格

要卸载当前在服务器启动时加载的带有插件加载选项的插件,请使用此过程。

  1. 删除的my.cnf存档与插件相关的任何选项。

  2. 重新启动服务器。

  3. 插件通常在启动时使用插件加载选项或with安装安装插件在运行时,但不是两者都。控件中移除插件的选项my.cnf如果在某些情况下,文件可能不足以卸载它安装插件也被使用过。的输出中仍然出现插件INFORMATION_SCHEMA。插件显示插件,使用卸载插件把它从mysql.plugin表格然后重新启动服务器。