10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 42.0 mb
PDF (A4)- 42.0 mb
手册页(TGZ)- 266.5 kb
手册页(邮政编码)- 376.2 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

6.4.4.2安装密匙环组件

密匙环服务使用者要求安装密匙环组件或插件:

请注意

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

MySQL提供了以下密匙环组件选择:

  • component_keyring_file:将密匙环数据保存在服务器本地的文件中。在MySQL社区版和MySQL企业版发行版中可用。

  • component_keyring_encrypted_file:将密匙环数据保存在服务器主机本地的一个加密的、有密码保护的文件中。在MySQL企业版发行版中可用。

要使服务器可用,组件库文件必须位于MySQL插件目录中(该目录由plugin_dir系统变量)。如果有必要,可以通过设置的值来配置插件目录位置plugin_dir在服务器启动。

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

与密匙环插件不同,密匙环组件不使用——early-plugin-load服务器选项或使用系统变量配置。相反,服务器使用清单确定在启动期间加载哪个密匙环组件,加载的组件在初始化时参考自己的配置文件。因此,要安装密匙环组件,必须:

  1. 编写一个清单,告诉服务器要加载哪个密匙环组件。

  2. 为该密匙环组件编写一个配置文件。

安装密匙环组件的第一步是编写指示要加载哪个组件的清单。在启动期间,服务器要么读取全局清单文件,要么读取与本地清单文件配对的全局清单文件:

  • 服务器试图从安装服务器的目录读取其全局清单文件。

  • 如果全局清单文件指示使用本地清单文件,则服务器尝试从数据目录读取其本地清单文件。

  • 尽管全局和本地清单文件位于不同的目录中,但文件名为mysqld.my在这两个位置。

  • 清单文件不存在并不是错误。在这种情况下,服务器不会尝试加载与该文件相关的组件。

本地清单文件允许为服务器的多个实例设置组件加载,这样每个服务器实例的加载指令都特定于给定的数据目录实例。这使得不同的MySQL实例可以使用不同的密匙环组件。

服务器清单文件具有以下属性:

  • 清单文件必须是有效的JSON格式。

  • 清单文件允许以下项目:

    • “read_local_manifest”:仅在全局清单文件中允许此项。如果项目不存在,服务器只使用全局清单文件。如果项目存在,则其值为真正的,指示服务器是否应该从本地清单文件读取组件加载信息。

      如果“read_local_manifest”项与其他项一起出现在全局清单文件中时,服务器将检查“read_local_manifest”项目价值:

      • 如果值为,服务器处理全局清单文件中的其他项,忽略本地清单文件。

      • 如果值为真正的,服务器忽略全局清单文件中的其他项,并尝试读取本地清单文件。

    • “组件”:该项表示加载哪个组件。项目值是一个指定有效组件URN的字符串,例如“文件:/ / component_keyring_file”.组件URN开始于文件:/ /表示库文件的基本名称,该库文件位于实现该组件的MySQL插件目录中。

  • 服务器对清单文件的访问应该是只读的。例如,一个mysqld.my服务器清单文件可能属于并被读/写,但应该只读到用于运行MySQL服务器的帐户。如果在启动期间发现清单文件可对该帐户进行读写,服务器将向错误日志写入警告,建议将该文件设置为只读。

  • 数据库管理员负责创建要使用的清单文件,并确保它们的访问模式和内容是正确的。如果发生错误,则服务器启动失败,管理员必须纠正服务器错误日志中诊断所指出的任何问题。

给定前面的清单文件属性,配置服务器来加载component_keyring_file,创建一个全局清单文件mysqld.mymysqld安装目录,并可选地创建一个本地清单文件,也命名为mysqld.my,在data目录下。下面的说明描述了如何加载component_keyring_file.若要加载不同的密匙环组件,请将其名称替换为component_keyring_file

  • 要只使用全局清单文件,文件内容如下所示:

    {"components": "file://component_keyring_file"}

    在目录中创建此文件mysqld安装。

  • 或者,要使用全局和本地清单文件对,全局文件看起来像这样:

    {"read_local_manifest": true}

    在目录中创建此文件mysqld安装。

    本地文件看起来像这样:

    {"components": "file://component_keyring_file"}

    在data目录中创建这个文件。

清单就绪后,继续配置密匙环组件。要做到这一点,请查看所选密匙环组件的注释,以获得特定于该组件的配置说明:

在执行任何特定于组件的配置之后,启动服务器。通过检查性能架构来验证组件的安装keyring_component_status表:

SELECT * FROM performance_schema.keyring_component_status;+---------------------+-------------------------------------------------+ | STATUS_KEY | STATUS_VALUE  | +---------------------+-------------------------------------------------+ | 甲骨文公司作者Component_name | component_keyring_file | | | | | |许可证GPL | | Implementation_name | component_keyring_file | |版本| 1.0 | | Component_status活动| | | Data_file | /usr/local/mysql/keyring/component_keyring_file | | Read_only | |+---------------------+-------------------------------------------------+

一个Component_status的价值活跃的指示组件初始化成功。

如果无法加载组件,则服务器启动失败。检查服务器错误日志以获得诊断消息。如果加载了组件,但由于配置问题而初始化失败,则服务器启动Component_status值是禁用.检查服务器错误日志,纠正配置问题,并使用更改实例重新加载密匙环语句重新加载配置。

应仅通过使用清单文件加载密匙环组件,而不是通过使用安装组件声明。对于使用密匙环的某些组件,使用该语句加载的密匙环组件可能在服务器启动序列中太晚才可用,例如InnoDB,因为它们注册在10bet靠谱mysql.component系统表,并为后续服务器重启自动加载。但10bet靠谱mysql.component是一个InnoDB表,因此其中命名的任何组件只能在之后的启动过程中加载InnoDB初始化。

当一个组件试图访问密匙环服务时,如果没有可用的密匙环组件或插件,该组件就不能使用该服务。因此,组件可能初始化失败,或者初始化时功能有限。例如,如果InnoDB当它初始化时发现有加密的表空间,它尝试访问密匙环。如果密匙环不可用,InnoDB只能访问未加密的表空间。