以下函数使您可以检查和配置复制组使用的组复制通信协议版本。
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.4.0 | +------------------------------------------------+
有关更多信息,请参见第 20.5.1.4 节“设置组的通信协议版本”.
group_replication_set_communication_protocol()
降级组的组复制通信协议版本,以便可以加入早期版本的成员,或者在所有成员上升级 MySQL 服务器后升级组的组复制通信协议版本。使用此函数需要
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");
有关更多信息,请参见第 20.5.1.4 节“设置组的通信协议版本”.