一个密匙环迁移键从一个密钥存储库转移到另一个副本,让DBA MySQL安装切换到一个不同的密钥存储库。一个成功的迁移操作结果:
目的地密钥存储库包含的键迁移前,加上密钥从源密钥存储库。
源密钥存储库迁移前后保持不变(因为钥匙复制,而不是移动)。
如果被复制的关键目标密钥存储库中已经存在,发生错误和目的地恢复密钥存储库迁移前的状态。
密匙环管理密钥存储库使用密匙环组件和密匙环插件。这属于迁移策略,因为源和目的地管理密钥存储库迁移决定一个特定类型的关键是可能的和执行的过程:
迁移从一个另一个密匙环插件:MySQL服务器有一个操作模式,提供了这个功能。
从一个密匙环插件迁移到一个密匙环组件:MySQL服务器有一个操作模式,MySQL 8.0.24提供此功能。
从一个密匙环组件迁移到另一个:mysql_migrate_keyring实用程序提供了此功能。mysql_migrate_keyringMySQL 8.0.24是可用的。
从一个密匙环组件迁移到一个密匙环插件:没有提供这一功能。
下面的章节将讨论离线和在线迁移的特点,并描述如何执行迁移。
一个关键迁移是离线或在线:
离线迁移:当你确定没有使用本地主机上运行的服务器使用源或目标的密钥存储库。在这种情况下,迁移操作可以复制钥匙从源密钥存储库到目的地没有的可能性在操作运行服务器修改密钥存储库的内容。
在线迁移:使用本地主机上运行服务器时使用源密钥存储库。在这种情况下,必须注意防止服务器迁移期间更新密钥存储库。这涉及到连接到服务器和运行指示它暂停密匙环操作以便键能安全地从源密钥库复制到目的地。当关键复制完成,运行服务器允许恢复密匙环操作。
当你计划的一个关键迁移,利用这些点来决定是否应该离线或在线:
不执行离线迁移涉及所使用的密钥存储库运行服务器。
在线迁移期间暂停密匙环操作是通过连接到服务器,并设置其全球运行
keyring_operations
系统变量从
在关键的复制和在
后复制的关键。这有几个含义:keyring_operations
介绍了MySQL 5.7.21,所以在线迁移可能只有在运行的服务器从MySQL 5.7.21或更高。如果运行服务器长大,你必须停止它,执行离线迁移,并重新启动它。所有其他地方迁移说明参考keyring_operations
这个条件。所使用的帐户连接到运行的服务器必须修改所需的特权
keyring_operations
。这些特权ENCRYPTION_KEY_ADMIN
除了要么SYSTEM_VARIABLES_ADMIN
或弃用超级
特权。如果在线迁移操作出口异常(例如,如果它是强行终止),它是可能的
keyring_operations
保持运行服务器上禁用,让它无法执行密匙环操作。在这种情况下,它可能需要连接到服务器并使运行keyring_operations
手动使用这个语句:设定全球keyring_operations =;
在线密钥迁移提供停顿在一个运行着的服务器密匙环操作。执行迁移,如果多个运行服务器正在使用的密钥存储库,使用描述的过程关键迁移涉及多个运行服务器。
一个MySQL服务器变成一个迁移服务器如果调用在一个特殊的运作模式,支持关键的迁移。迁移服务器不接受客户端连接。相反,它只运行足够长的时间迁移密钥,然后退出。迁移服务器报告错误控制台(标准错误输出)。
迁移服务器支持这些迁移类型:
迁移从一个密匙环插件到另一个。
从一个密匙环插件迁移到一个密匙环组件。MySQL 8.0.24这个功能是可用的。老服务器从一个密匙环插件仅支持迁移到另一个,在这种情况下,这些指令是指密匙环的部分组件不适用。
迁移服务器不支持从一个密匙环组件迁移到另一个地方。这种迁移,看到关键迁移使用mysql_migrate_keyring实用工具。
执行关键使用迁移服务器迁移操作,确定所需的密钥迁移选项指定哪个密匙环插件或组件,以及是否迁移是离线或在线:
表明源密匙环插件和目的地密匙环插件或组件,指定这些选项:
——keyring-migration-source
:源密匙环插件管理迁移的关键。——keyring-migration-destination
:目的地的密匙环插件或组件迁移密钥复制。——keyring-migration-to-component
:这个选项是必需的,如果目的地是一个密匙环组件,而不是一个密匙环插件。
的
——keyring-migration-source
和——keyring-migration-destination
服务器选项表示在关键的迁移模式下运行。迁移的关键操作,这两种选择都是强制性的。每个插件或组件指定使用库文件的名称,包括任何特定于平台的扩展等所以
或. dll
。源和目的地必须不同,迁移服务器必须支持他们两个。为离线迁移,不需要额外的关键迁移选项。
在线迁移,一些运行服务器目前正在使用的源或目标密钥存储库。调用迁移服务器,指定附加键迁移选项表明如何连接到正在运行的服务器。这是必要的,以便迁移服务器可以连接到运行服务器,告诉它暂停密匙环使用在迁移操作。
使用下列选项意味着一个在线迁移:
——keyring-migration-host
:主机运行服务器所在地。这是本地主机总是因为迁移服务器密钥存储库之间的迁移密钥只能由当地管理插件和组件。——keyring-migration-user
,——keyring-migration-password
:账户凭证使用连接到运行服务器。——keyring-migration-port
:对于TCP / IP连接,端口号连接到服务器上的。——keyring-migration-socket
:对于Unix socket文件或Windows命名管道连接,套接字文件或命名管道连接到服务器上的。
关键迁移选项的更多相关信息,请参阅部分6.4.4.17,“密匙环命令选项”。
启动迁移服务器与关键迁移选项显示源和目的地密钥存储库和迁移是否离线或在线,可能与其他选项。牢记以下注意事项:
可能需要其他服务器选项,如两个密匙环插件的配置参数。例如,如果
keyring_file
源或目标,您必须设置keyring_file_data
系统变量如果密匙环数据文件位置不是默认位置。其他可能需要non-keyring选项。指定这些选项是使用的一种方法——defaults-file
命名一个选项文件,其中包含所需的选项。迁移服务器预计路径名称选项值的完整路径。相对路径名称可能不像你期望得到解决。
用户调用服务器在重点迁徙模式下不能
根
操作系统用户,除非——用户
非指定选项根
用户名用户运行服务器。在重点迁徙模式运行用户服务器,必须允许读和写任何本地keyring文件,数据文件等文件的插件。
如果您调用从一个系统迁移服务器帐户不同于通常用于运行MySQL,它可以创建密匙环无法访问服务器的目录或文件在正常操作。假设mysqld正常运行的
mysql
操作系统用户,但是你调用迁移服务器同时登录伊莎贝尔
。任何新创建的目录或文件迁移服务器属于伊莎贝尔
。随后启动失败当服务器运行mysql
操作系统用户试图访问文件系统对象所拥有的伊莎贝尔
。为了避免这个问题,开始迁移服务器
根
操作系统用户,并提供一个——用户=
选项,user_name
user_name
通常是系统账户用于运行MySQL。或者,在迁移之后,检查keyring-related文件系统对象和改变他们的所有权和权限,如果需要使用乔恩,修改文件权限或类似的命令,所以,对象是正在运行的服务器访问。
用于离线两个密匙环之间迁移插件的示例命令行(输入命令在一行):
mysqld——defaults-file = / usr /地方/ mysql——keyring-migration-source = keyring_file / etc / my . cnf中所做。所以,keyring-migration-destination = keyring_encrypted_file。所以,keyring_encrypted_file_password =密码
示例命令行在线迁移两个密匙环之间的插件:
mysqld——defaults-file = / usr /地方/ mysql——keyring-migration-source = keyring_file / etc / my . cnf中所做。所以,keyring-migration-destination = keyring_encrypted_file。所以,keyring_encrypted_file_password =密码——keyring-migration-host = 127.0.0.1 keyring-migration-user =根——keyring-migration-password =root_password
执行迁移时,目的地是一个密匙环组件而不是一个密匙环插件,指定——keyring-migration-to-component
选项,和名称的组件的值——keyring-migration-destination
选择。
命令行例子从一个密匙环插件离线迁移到一个密匙环组件:
mysqld——defaults-file = / usr /地方/ mysql——keyring-migration-to-component keyring-migration-source = keyring_file / etc / my . cnf中所做。所以,keyring-migration-destination = component_keyring_encrypted_file.so
请注意,在这种情况下,没有keyring_encrypted_file_password
指定的值。的密码组件数据文件中列出的组件配置文件。
命令行例子从一个密匙环插件在线迁移到一个密匙环组件:
mysqld——defaults-file = / usr /地方/ mysql——keyring-migration-to-component keyring-migration-source = keyring_file / etc / my . cnf中所做。所以,keyring-migration-destination = component_keyring_encrypted_file.so——keyring-migration-host = 127.0.0.1 keyring-migration-user =根——keyring-migration-password =root_password
密钥迁移服务器执行迁移操作如下:
(仅在线迁移)连接到运行服务器使用连接选项。
(仅在线迁移)禁用
keyring_operations
在正在运行的服务器上。加载插件/密匙环组件库的源和目的地密钥存储库。
将钥匙从源密钥库复制到目的地。
卸载插件/密匙环组件库的源和目的地密钥存储库。
(仅在线迁移)启用
keyring_operations
在正在运行的服务器上。(仅在线迁移)断开从正在运行的服务器。
关键迁移期间如果发生错误,目的地密钥库恢复到迁移前的状态。
网络密钥迁移操作成功后,运行服务器可能需要重启:
如果正在运行的服务器使用前的源密钥存储库迁移和迁移后应该继续使用它,它不需要重新启动后的迁移。
如果正在运行的服务器使用前的目的地密钥存储库迁移和迁移后应该继续使用它,它应该重新启动迁移后加载所有键密钥存储库迁移到目的地。
如果正在运行的服务器使用源密钥存储库迁移但是应该使用目的地密钥存储库迁移后,必须重新配置使用目的地密钥存储库和重新启动。在这种情况下,请注意,虽然运行服务器暂停从修改源密钥存储库在迁移过程本身,这不是停在区间之间的迁移和随后的重新启动。应该小心,服务器不修改源密钥存储库在这个区间,因为任何这样的变化将不会反映在目的地密钥存储库。
的mysql_migrate_keyring实用程序键从一个密匙环组件迁移到另一个。它不支持迁移涉及密匙环插件。类型的迁移,使用一个MySQL服务器操作关键迁移模式;看到主要使用迁移服务器迁移。
执行迁移操作使用的关键mysql_migrate_keyring,确定所需的密钥迁移选项指定哪个密匙环组件,以及是否迁移是离线或在线:
表明源和目的地密匙环组件及其位置,指定这些选项:
——source-keyring
:源密匙环组件,管理的关键是迁移。——destination-keyring
:目的地密匙环组件迁移的密钥将被复制。——component-dir
:包含密匙环组件库文件的目录。这是通常的价值plugin_dir
系统变量为本地MySQL服务器。
三个选项都是强制性的。每一个密匙环组件名称是一个组件库文件名称没有指定特定于平台的扩展等
所以
或. dll
。例如,使用组件的库文件component_keyring_file.so
,指定的选项——source-keyring = component_keyring_file
。源和目的地必须不同,mysql_migrate_keyring必须支持他们两个。为离线迁移,不需要额外的选项。
在线迁移,一些运行服务器目前正在使用的源或目标密钥存储库。在这种情况下,指定
——在线迁移
选择意味着一个在线迁移。此外,指定连接选项指示如何连接到正在运行的服务器,这样mysql_migrate_keyring可以连接到它,告诉它暂停使用密匙环在迁移操作。的
——在线迁移
选择是常用的结合连接这样的选项:
所有可用选项的描述,请参阅部分4.6.8,“mysql_migrate_keyring -密匙环键迁移工具”。
开始mysql_migrate_keyring选项表明源和目的地密钥库和迁移是否离线或在线,可能与其他选项。牢记以下注意事项:
用户调用mysql_migrate_keyring不是必须的
根
操作系统的用户。用户调用mysql_migrate_keyring必须有权限读写任何本地keyring文件、数据文件等文件的插件。
如果您调用mysql_migrate_keyring从一个系统账户不同,通常用于运行MySQL,它可以创建密匙环无法访问服务器的目录或文件在正常操作。假设mysqld正常运行的
mysql
操作系统用户,但您调用mysql_migrate_keyring而登录伊莎贝尔
。任何新创建的目录或文件mysql_migrate_keyring属于伊莎贝尔
。随后启动失败当服务器运行mysql
操作系统用户试图访问文件系统对象所拥有的伊莎贝尔
。为了避免这个问题,调用mysql_migrate_keyring随着
mysql
操作系统的用户。或者,在迁移之后,检查keyring-related文件系统对象和改变他们的所有权和权限,如果需要使用乔恩,修改文件权限或类似的命令,所以,对象是正在运行的服务器访问。
假设您想要迁移密钥component_keyring_file
来component_keyring_encrypted_file
在本地服务器,存储密匙环组件库文件/usr/local/mysql/lib/plugin
。
如果没有使用密匙环,运行服务器离线迁移是允许的。调用mysql_migrate_keyring像这样的(输入命令在一行):
mysql_migrate_keyring——component-dir = / usr /地方/ mysql / lib /插件——source-keyring = component_keyring_file destination-keyring = component_keyring_encrypted_file
如果正在运行的服务器使用密匙环,必须执行一个在线迁移。在这种情况下,——在线迁移
必须给出选项,以及任何连接选项需要指定要连接的服务器和MySQL账户使用。
以下命令执行一个在线迁移。它连接到本地服务器,使用TCP / IP连接管理
帐户。命令提示输入密码,你应该输入时提示:
mysql_migrate_keyring——component-dir = / usr /地方/ mysql / lib /插件——source-keyring = component_keyring_file destination-keyring = component_keyring_encrypted_file——在线迁移主机= 127.0.0.1,用户= admin,密码
mysql_migrate_keyring执行迁移操作如下:
(仅在线迁移)连接到运行服务器使用连接选项。
(仅在线迁移)禁用
keyring_operations
在正在运行的服务器上。负载的密匙环组件库源和目的地密钥存储库。
将钥匙从源密钥库复制到目的地。
卸载的密匙环组件库源和目的地密钥存储库。
(仅在线迁移)启用
keyring_operations
在正在运行的服务器上。(仅在线迁移)断开从正在运行的服务器。
关键迁移期间如果发生错误,目的地密钥库恢复到迁移前的状态。
网络密钥迁移操作成功后,运行服务器可能需要重启:
如果正在运行的服务器使用前的源密钥存储库迁移和迁移后应该继续使用它,它不需要重新启动后的迁移。
如果正在运行的服务器使用前的目的地密钥存储库迁移和迁移后应该继续使用它,它应该重新启动迁移后加载所有键密钥存储库迁移到目的地。
如果正在运行的服务器使用源密钥存储库迁移但是应该使用目的地密钥存储库迁移后,必须重新配置使用目的地密钥存储库和重新启动。在这种情况下,请注意,虽然运行服务器暂停从修改源密钥存储库在迁移过程本身,这不是停在区间之间的迁移和随后的重新启动。应该小心,服务器不修改源密钥存储库在这个区间,因为任何这样的变化将不会反映在目的地密钥存储库。
在线密钥迁移提供停顿在一个运行着的服务器密匙环操作。执行迁移,如果多个运行服务器正在使用的密钥存储库,使用这个过程:
手动连接到每个正在运行的服务器并集
keyring_operations =了
。这可以确保不使用源或目标运行服务器密钥库离线迁移并满足所需的条件。使用一个服务器或迁移mysql_migrate_keyring为每个暂停执行离线键迁移服务器。
手动连接到每个正在运行的服务器并集
keyring_operations =对
。
所有正在运行的服务器必须支持keyring_operations
系统变量。任何服务器,不迁移之前必须停止并重新启动。