群組複寫群組成員可以使用 IPv6 位址作為群組內通訊的 IPv4 位址替代方案。若要使用 IPv6 位址,伺服器主機上的作業系統和 MySQL 伺服器執行個體都必須設定為支援 IPv6。如需設定伺服器執行個體的 IPv6 支援的指示,請參閱第 7.1.13 節「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 具有相同的允許清單,除非有安全性需求另行要求。
如果複寫群組的任何或所有成員正在使用不支援使用 IPv6 位址進行群組複寫的舊版 MySQL 伺服器,則成員無法使用 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 節,「分散式復原的連線」。