以下功能使您能够检查和配置复制组使用的组复制通信协议版本。
MySQL 5.7.14 的版本允许压缩消息(请参阅 第 18.7.4 节,“消息压缩”)。
MySQL 8.0.16 的版本还允许对消息进行分段(请参阅 第 18.7.5 节,“消息分段” )。
MySQL 8.0.27 的版本还允许组通信引擎在组处于单主模式并
group_replication_paxos_single_leader
设置为 true 时与单个共识领导者一起运行(请参阅 第 18.7.3 节,“单一共识领导者” )。
group_replication_get_communication_protocol()
检查当前用于组的组复制通信协议版本。
句法:
STRING group_replication_get_communication_protocol()
这个函数没有参数。
返回值:
可以加入该组并使用该组通信协议的最旧的 MySQL 服务器版本。请注意,该
group_replication_get_communication_protocol()
函数返回组支持的最低 MySQL 版本,这可能与传递给该group_replication_set_communication_protocol()
函数的版本号不同,也与安装在您使用该函数的成员上的 MySQL 服务器版本不同。如果由于此服务器实例不属于复制组而无法检查协议,则会以字符串形式返回错误。
例子:
SELECT group_replication_get_communication_protocol(); +------------------------------------------------+ | group_replication_get_communication_protocol() | +------------------------------------------------+ | 8.0.16 | +------------------------------------------------+
有关详细信息,请参阅 第 18.5.1.4 节,“设置组的通信协议版本”。
group_replication_set_communication_protocol()
降级一个组的Group Replication通信协议版本,使早期版本的成员可以加入,或者在升级所有成员的MySQL Server后,升级一个组的Group Replication通信协议版本。使用
GROUP_REPLICATION_ADMIN
此功能需要权限,并且在您发出声明时所有现有的组成员都必须在线,并且不能失去多数。笔记对于 MySQL InnoDB 集群,只要使用 AdminAPI 操作更改集群拓扑,就会自动管理通信协议版本。您不必自己为 InnoDB 集群使用这些功能。
句法:
STRING group_replication_set_communication_protocol(version)
参数:
version
:对于降级,请指定具有最旧安装服务器版本的预期组成员的 MySQL 服务器版本。在这种情况下,如果可能,该命令会使组回退到与该服务器版本兼容的通信协议。您可以指定的最低服务器版本是 MySQL 5.7.14。对于升级,指定现有组成员已升级到的新 MySQL 服务器版本。
返回值:
包含操作结果的字符串,例如操作是否成功。
例子:
SELECT group_replication_set_communication_protocol("5.7.25");
有关详细信息,请参阅 第 18.5.1.4 节,“设置组的通信协议版本”。