• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 支持IPv6以及IPv6和IPv4混合组

    从MySQL 8.0.14开始,“组复制”组成员可以使用IPv6地址替代IPv4地址,以在组内进行通信。要使用IPv6地址,必须将服务器主机上的操作系统和MySQL Server实例都配置为支持IPv6。有关为服务器实例设置IPv6支持的说明,请参见“ IPv6支持”。

    可以在成员的group_replication_local_address选项中将IPv6地址或解析为它们的主机名指定为该成员提供的网络地址,以用于与其他成员的连接。当使用端口号指定时,必须在方括号中指定IPv6地址,例如:

    group_replication_local_address= "[2001:db8:85a3:8d3:1319:8a2e:370:7348]:33061"
    

    group_replication_local_address组复制将其中指定的网络地址或主机名用作复制组中组成员的唯一标识符。如果指定为服务器实例的组复制本地地址的主机名同时解析为IPv4和IPv6地址,则IPv4地址始终用于组复制连接。指定为组复制本地地址的地址或主机名与MySQL服务器SQL协议主机和端口不同,并且未在bind_address服务器实例的系统变量中指定。出于IP地址白名单进行组复制的目的(请参见“组复制IP地址白名单”)),则group_replication_local_address必须将您为每个组成员指定的地址添加到group_replication_ip_whitelist复制组中其他服务器上的选项列表中。

    复制组可以包含呈现IPv6地址作为其组复制本地地址的成员与呈现IPv4地址的成员的组合。服务器加入这样的混合组时,它必须使用种子成员在group_replication_group_seeds选项中发布的协议(即IPv4或IPv6)与种子成员进行初始联系。如果该组中有任何种子成员,group_replication_group_seeds如果加入成员具有IPv4组复制本地地址,则选择带有IPv6地址的选项(或相反),还必须为加入成员设置所需协议(或解析为以下地址的主机名)的备用地址并将其列入白名单该协议)。如果加入成员没有适当协议的白名单地址,则拒绝其连接尝试。仅需要将备用地址或主机名添加到group_replication_ip_whitelist复制组中其他服务器上的选项中,而不需要添加到group_replication_local_address加入成员的值(只能包含一个地址)中。

    例如,服务器A是一个组的种子成员,并且具有以下用于“组复制”的配置设置,因此它在group_replication_group_seeds选项中发布了IPv6地址:

    group_replication_bootstrap_group=on
    group_replication_local_address= "[2001:db8:85a3:8d3:1319:8a2e:370:7348]:33061"
    group_replication_group_seeds= "[2001:db8:85a3:8d3:1319:8a2e:370:7348]:33061"
    

    服务器B是该组的加入成员,并且具有以下用于组复制的配置设置,因此它具有IPv4组复制本地地址:

    group_replication_bootstrap_group=off
    group_replication_local_address= "203.0.113.21:33061"
    group_replication_group_seeds= "[2001:db8:85a3:8d3:1319:8a2e:370:7348]:33061"
    

    服务器B也具有备用IPv6地址2001:db8:8b0:40:3d9c:cc43:e006:19e8。为了使服务器B成功加入该组,必须在服务器A的白名单中列出其IPv4组复制本地地址和其备用IPv6地址,如以下示例所示:

    group_replication_ip_whitelist=
    "203.0.113.0/24,2001:db8:85a3:8d3:1319:8a2e:370:7348, 
    2001:db8:8b0:40:3d9c:cc43:e006:19e8"
    

    作为组复制IP白名单的最佳实践,除非安全要求另有要求,否则服务器B(和所有其他组成员)应与服务器A具有相同的白名单。

    如果复制组的任何或所有成员使用的是不支持将IPv6地址用于组复制的MySQL Server的较早版本,则成员不能使用IPv6地址(或解析为一个的主机名)加入该组。作为其组复制本地地址。这适用于以下情况:至少一个现有成员使用IPv6地址和一个不支持此尝试的新成员尝试加入,以及新成员尝试使用IPv6地址但该组至少包含加入成员的情况一个不支持这一点的成员。在每种情况下,新成员都无法加入。要使加入成员显示用于组通信的IPv4地址,您可以更改group_replication_local_address到IPv4地址,或配置DNS以将加入成员的现有主机名解析为IPv4地址。将每个组成员升级到支持IPv6进行组复制的MySQL Server版本后,可以将group_replication_local_address每个成员的值更改为IPv6地址,或将DNS配置为显示IPv6地址。group_replication_local_address仅当您停止并重新启动组复制时,更改的值才生效。