#### 6.4.4.3 密钥环插件安装

[](<>)[](<>)[](<>)[](<>)[](<>)[](<>)[](<>)[](<>)[](<>)[](<>)[](<>)[](<>)

密钥环服务消费者要求安装密钥环组件或插件：

-   要使用密钥环插件，请从此处的说明开始。（此外，有关安装插件的一般信息，请参阅[第 5.6.1 节，“安装和卸载插件”](plugin-loading.html).)

-   要改用密钥环组件，请从[第 6.4.4.2 节，“密钥环组件安装”](keyring-component-installation.html).

-   如果您打算将密钥环功能与所选的密钥环组件或插件一起使用，请在安装该组件或插件后按照中的说明安装这些功能[第 6.4.4.14 节，“通用密钥环密钥管理功能”](keyring-functions-general-purpose.html).

笔记

一次只能启用一个密钥环组件或插件。不支持启用多个密钥环组件或插件，结果可能与预期不同。

MySQL 提供了这些密钥环插件选择：

-   `密钥环文件`：将密钥环数据存储在服务器主机本地的文件中。在 MySQL Community Edition 和 MySQL Enterprise Edition 发行版中可用。

-   `密钥环加密文件`：将密钥环数据存储在服务器主机本地的加密的、受密码保护的文件中。在 MySQL 企业版发行版中可用。

-   `密钥环_okv`：KMIP 1.1 插件，用于与 KMIP 兼容的后端密钥环存储产品，例如 Oracle Key Vault 和 Gemalto SafeNet KeySecure Appliance。在 MySQL 企业版发行版中可用。

-   `密钥环_aws`：与 Amazon Web Services 密钥管理服务通信，作为密钥生成的后端，并使用本地文件进行密钥存储。在 MySQL 企业版发行版中可用。

-   `keyring_hashicorp`：与 HashiCorp Vault 通信以进行后端存储。在 MySQL 企业版发行版中可用。

-   `密钥环_oci`：与 Oracle Cloud Infrastructure Vault 通信以进行后端存储。看[第 6.4.4.11 节，“使用 Oracle Cloud Infrastructure Vault Keyring 插件”](keyring-oci-plugin.html).

    要被服务器使用，插件库文件必须位于 MySQL 插件目录（由[`插件目录`](server-system-variables.html#sysvar_plugin_dir)系统变量）。如有必要，通过设置值来配置插件目录位置[`插件目录`](server-system-variables.html#sysvar_plugin_dir)在服务器启动时。

    密钥环组件或插件必须在服务器启动序列的早期加载，以便其他组件可以在它们自己的初始化期间根据需要访问它。例如，`InnoDB`存储引擎使用密钥环进行表空间加密，因此必须先加载密钥环组件或插件并使其可用`InnoDB`初始化。

    每个密钥环插件的安装都是相似的。以下说明描述了如何安装`密钥环文件`.要使用不同的密钥环插件，请将其名称替换为`密钥环文件`.

    这`密钥环文件`插件库文件的基本名称是`密钥环文件`.文件名后缀因平台而异（例如，`。所以`对于 Unix 和类 Unix 系统，`.dll`对于 Windows）。

    要加载插件，请使用[`--early-plugin-load`](server-options.html#option_mysqld_early-plugin-load)选项来命名包含它的插件库文件。例如，在插件库文件后缀为的平台上`。所以`, 在服务器中使用这些行`我的.cnf`文件，调整`。所以`根据需要为您的平台添加后缀：


```
[mysqld]
early-plugin-load=keyring_file.so
```

在启动服务器之前，请检查您选择的密钥环插件的注释以获取特定于该插件的配置说明：

-   `密钥环文件`：[第 6.4.4.6 节，“使用密钥环\_文件基于文件的密钥环插件”](keyring-file-plugin.html).

-   `密钥环加密文件`：[第 6.4.4.7 节，“使用密钥环\_加密\_文件加密的基于文件的密钥环插件”](keyring-encrypted-file-plugin.html).

-   `密钥环_okv`：[第 6.4.4.8 节，“使用密钥环\_okv KMIP 插件”](keyring-okv-plugin.html).

-   `密钥环_aws`：[第 6.4.4.9 节，“使用密钥环\_aws 亚马逊网络服务密钥环插件”](keyring-aws-plugin.html)

-   `keyring_hashicorp`：[第 6.4.4.10 节，“使用 HashiCorp Vault Keyring 插件”](keyring-hashicorp-plugin.html)

-   `密钥环_oci`：[第 6.4.4.11 节，“使用 Oracle Cloud Infrastructure Vault Keyring 插件”](keyring-oci-plugin.html)

    执行任何特定于插件的配置后，启动服务器。通过检查来验证插件安装[`INFORMATION_SCHEMA.PLUGINS`](information-schema-plugins-table.html)表或使用[`显示插件`](show-plugins.html)声明（见[第 5.6.2 节，“获取服务器插件信息”](obtaining-plugin-information.html)）。例如：


```
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
       FROM INFORMATION_SCHEMA.PLUGINS
       WHERE PLUGIN_NAME LIKE 'keyring%';
+--------------+---------------+
| PLUGIN_NAME  | PLUGIN_STATUS |
+--------------+---------------+
| keyring_file | ACTIVE        |
+--------------+---------------+
```

如果插件无法初始化，请检查服务器错误日志以获取诊断消息。

插件可以通过其他方法加载[`--early-plugin-load`](server-options.html#option_mysqld_early-plugin-load)， 如那个[`--插件加载`](server-options.html#option_mysqld_plugin-load)要么[`--plugin-load-add`](server-options.html#option_mysqld_plugin-load-add)选项或[`安装插件`](install-plugin.html)陈述。但是，对于某些使用密钥环的组件，使用这些方法加载的密钥环插件在服务器启动序列中可能为时已晚，例如`InnoDB`：

-   插件加载使用[`--插件加载`](server-options.html#option_mysqld_plugin-load)要么[`--plugin-load-add`](server-options.html#option_mysqld_plugin-load-add)发生后`InnoDB`初始化。

-   使用安装的插件[`安装插件`](install-plugin.html)注册在`mysql.plugin`系统表并自动加载以供后续服务器重新启动。然而，由于`mysql.plugin`是一个`InnoDB`表，其中命名的任何插件只能在启动期间加载`InnoDB`初始化。

    如果组件尝试访问密钥环服务时没有可用的密钥环组件或插件，则该组件无法使用该服务。因此，该组件可能无法初始化或初始化时功能有限。例如，如果`InnoDB`初始化时发现有加密表空间，尝试访问keyring。如果密钥环不可用，`InnoDB`只能访问未加密的表空间。以确保`InnoDB`也可以访问加密的表空间，使用[`--early-plugin-load`](server-options.html#option_mysqld_early-plugin-load)加载密钥环插件。
