MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  IPv6 および IPv6 と IPv4 の混合グループのサポート

18.4.5 IPv6 および IPv6 と IPv4 の混合グループのサポート

MySQL 8.0.14 から、グループレプリケーショングループメンバーは、グループ内の通信用の IPv4 アドレスのかわりに IPv6 アドレスを使用できます。 IPv6 アドレスを使用するには、サーバーホストと MySQL Server インスタンスの両方のオペレーティングシステムが IPv6 をサポートするように構成されている必要があります。 サーバーインスタンスの IPv6 サポートを設定する手順は、セクション5.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 アドレス権限 (セクション18.5.1「グループレプリケーション IP アドレスの権限」 を参照) のために、group_replication_local_address の各グループメンバーに指定するアドレスを、レプリケーショングループ内の他のサーバー上の group_replication_ip_allowlist (MySQL 8.0.22 から) または group_replication_ip_whitelist システム変数のリストに追加する必要があります。

レプリケーショングループには、IPv6 アドレスをグループレプリケーションローカルアドレスとして提示するメンバーと、IPv4 アドレスを提示するメンバーの組合せを含めることができます。 サーバーがこのような混合グループに参加する場合、シードメンバーが group_replication_group_seeds オプションで通知するプロトコル (IPv4 か IPv6 かにかかわらず) を使用して、シードメンバーとの初期接続を確立する必要があります。 参加メンバーに IPv4 Group Replication のローカルアドレスがある場合、またはその逆の場合に、グループのシードメンバーのいずれかが IPv6 アドレスとともに group_replication_group_seeds オプションにリストされている場合は、必要なプロトコル (またはそのプロトコルのアドレスに解決されるホスト名) の参加メンバーの代替アドレスも設定して許可する必要があります。 参加メンバーに適切なプロトコルの許可されたアドレスがない場合、その接続試行は拒否されます。 代替アドレスまたはホスト名は、レプリケーショングループ内の他のサーバーの group_replication_ip_allowlist (MySQL 8.0.22) または 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 がグループに正常に参加するには、次の例のように、IPv4 Group Replication のローカルアドレスと代替 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 Server バージョンを使用している場合、IPv6 アドレス (またはそれに解決されるホスト名) をグループレプリケーションローカルアドレスとして使用してグループに参加することはできません。 これは、少なくとも 1 つの既存のメンバーが IPv6 アドレスを使用している場合と、この参加試行をサポートしていない新しいメンバーの両方に適用されます。また、新しいメンバーが IPv6 アドレスを使用して参加しようとしたが、このアドレスをサポートしていないメンバーがグループに少なくとも 1 つ含まれている場合にも適用されます。 どの状況でも、新しいメンバーは参加できません。 参加メンバーがグループ通信用の IPv4 アドレスを提示するようにするには、group_replication_local_address の値を IPv4 アドレスに変更するか、参加メンバーの既存のホスト名を IPv4 アドレスに解決するように DNS を構成します。 すべてのグループメンバーを、グループレプリケーション用の IPv6 をサポートする MySQL Server バージョンにアップグレードした後、各メンバーの group_replication_local_address 値を IPv6 アドレスに変更するか、IPv6 アドレスを表示するように DNS を構成できます。 group_replication_local_address の値の変更は、Group Replication を停止して再起動した場合にのみ有効になります。

IPv6 アドレスは、group_replication_advertise_recovery_endpoints システム変数を使用して MySQL 8.0.21 から指定できる分散リカバリエンドポイントとしても使用できます。 このリストで使用されるアドレスにも同じルールが適用されます。 セクション18.4.3.1「分散リカバリの接続」を参照してください。


関連キーワード:  グループ, アドレス, group, replication, メンバー, サーバー, リカバリ, 分散, サポート, local