群組複寫群組成員可以使用 IPv6 位址來替代 IPv4 位址,以進行群組內的通訊。若要使用 IPv6 位址,伺服器主機上的作業系統和 MySQL 伺服器執行個體都必須設定為支援 IPv6。如需設定伺服器執行個體 IPv6 支援的指示,請參閱第 7.1.13 節,「IPv6 支援」。
可以將 IPv6 位址或解析為 IPv6 位址的主機名稱指定為成員在 group_replication_local_address
選項中提供的網路位址,以供其他成員連線。當使用連接埠號碼指定時,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 位址權限(請參閱第 20.6.4 節,「群組複寫 IP 位址權限」),您在 group_replication_local_address
中為每個群組成員指定的位址必須新增至複寫群組中其他伺服器上的 group_replication_ip_allowlist
系統變數清單中。
複寫群組可以包含同時呈現 IPv6 位址作為其群組複寫本機位址的成員,以及呈現 IPv4 位址的成員。當伺服器加入此類混合群組時,它必須使用種子成員在 group_replication_group_seeds
選項中發佈的通訊協定(無論是 IPv4 還是 IPv6)與種子成員建立初始連線。如果當加入的成員具有 IPv4 群組複寫本機位址時,群組的任何種子成員在 group_replication_group_seeds
選項中以 IPv6 位址列出,或者相反,您也必須為所需的通訊協定設定並允許加入成員的替代位址(或解析為該通訊協定位址的主機名稱)。如果加入的成員沒有允許的適當通訊協定位址,則其連線嘗試將遭到拒絕。替代位址或主機名稱只需要新增至複寫群組中其他伺服器上的 group_replication_ip_allowlist
系統變數,而不是加入成員的 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 成功加入群組,其 IPv4 群組複寫本機位址及其替代 IPv6 位址都必須列在伺服器 A 的允許清單中,如下例所示
group_replication_ip_allowlist=
"203.0.113.0/24,2001:db8:85a3:8d3:1319:8a2e:370:7348,
2001:db8:8b0:40:3d9c:cc43:e006:19e8"
作為群組複寫 IP 位址權限的最佳做法,伺服器 B(和所有其他群組成員)應該具有與伺服器 A 相同的允許清單,除非安全性需求另有要求。
如果複寫群組中的任何或所有成員使用較舊的 MySQL 伺服器版本,且該版本不支援將 IPv6 位址用於群組複寫,則成員無法使用 IPv6 位址(或解析為 IPv6 位址的主機名稱)作為其群組複寫本機位址來加入群組。這適用於至少有一個現有成員使用 IPv6 位址,且不支援此功能的新成員嘗試加入的情況;以及新成員嘗試使用 IPv6 位址加入,但群組中至少有一個成員不支援此功能的情況。在上述任一情況下,新成員都無法加入。若要讓加入的成員提供 IPv4 位址以進行群組通訊,您可以將 group_replication_local_address
的值變更為 IPv4 位址,或將 DNS 設定為將加入成員的現有主機名稱解析為 IPv4 位址。在您將每個群組成員都升級到支援群組複寫 IPv6 的 MySQL 伺服器版本後,您可以將每個成員的 group_replication_local_address
值變更為 IPv6 位址,或將 DNS 設定為提供 IPv6 位址。變更 group_replication_local_address
的值只有在您停止並重新啟動群組複寫時才會生效。
IPv6 位址也可以用作分散式復原端點,可以使用 group_replication_advertise_recovery_endpoints
系統變數來指定。相同的規則適用於此列表中使用的位址。請參閱第 20.5.4.1 節,「分散式復原的連線」。