用于处理 InnoDB Cluster、InnoDB ClusterSet、InnoDB ReplicaSet 以及这些部署中的各个成员服务器实例的 AdminAPI 命令会修改实例上 MySQL Server 的配置。根据 MySQL Shell 连接到实例的方式以及实例上安装的 MySQL 服务器的版本,这些配置更改可以自动持久化到实例。
通过对实例进行持久化设置,您可以确保在实例重新启动后,配置更改得以保留。有关背景信息,请参阅
SET
PERSIST
。这种持久性对于可靠使用至关重要。例如,如果设置不是持久性的,添加到集群的实例在重启后不会重新加入集群,因为配置更改会丢失。
满足以下要求的实例支持自动持久化配置更改:
实例运行的是 MySQL 8.0.11 或更高版本。
persisted_globals_load
设置为ON
。该实例尚未使用该
--no-defaults
选项启动。
不满足这些要求的实例不支持自动持久化配置更改,并且当 AdminAPI 操作导致对实例设置的更改被持久化时,您会收到警告,例如:
WARNING: On instance 'localhost:3320' membership change cannot be persisted since MySQL version 5.7.21
does not support the SET PERSIST command (MySQL version >= 8.0.5 required). Please use the
<Dba>.configureLocalInstance command locally to persist the changes.
当针对 MySQL Shell 当前运行的 MySQL 实例(即本地实例)发出 AdminAPI 命令时,MySQL Shell 会将配置更改直接保存到该实例。在支持自动持久化配置更改的本地实例上,配置更改会持久保存到实例的
mysqld-auto.cnf
文件中,并且配置更改不需要任何进一步的步骤。
您必须在不支持自动持久配置更改的本地实例上进行本地更改。有关详细信息,请参阅使用配置实例
dba.configureLocalInstance()
。
当针对远程实例运行时,换句话说,不是当前运行 MySQL Shell 的实例,如果实例支持自动持久化配置更改,则 AdminAPI 命令将配置更改持久化到实例的mysql-auto.conf
选项文件中。
如果远程实例不支持自动持久化配置更改,则 AdminAPI 命令无法自动配置实例的选项文件。因此,AdminAPI 命令可以从实例中读取信息,例如,显示当前配置。但是对配置的更改无法持久保存到实例的选项文件中。在这种情况下,您需要在本地保留更改。有关详细信息,请参阅
使用配置实例
dba.configureLocalInstance()
。