The steps for a joining member to establish a connection for distributed recovery are as follows: 

1. When the member joins the group, it connects with one of the seed members included in the list in its group_replication_group_seeds  system variable, initially using the group_replication_local_address  connection as specified in that list. The seed members might be a subset of the group. 

2. Over this connection, the seed member uses Group Replication’s membership service to provide the joining member with a list of all the members that are online in the group, in the form of a view. The membership information includes the details of the distributed recovery endpoints or standard SQL client connection offered by each member for distributed recovery. 

3. The joining member selects a suitable group member from this list to be its donor for distributed recovery, following the behaviors described in Section 18.5.3.4, “Fault Tolerance for Distributed Recovery” . 

4. The joining member then attempts to connect to the donor using the donor’s advertised distributed recovery endpoints, trying each in turn in the order they are specified in the list. If the donor provides no endpoints, the joining member attempts to connect using the donor’s standard SQL client connection. The SSL requirements for the connection are as specified by the group_replication_recovery_ssl_*  options described in SSL and Authentication for Distributed Recovery. 

5. If the joining member is not able to connect to the selected donor, it retries with other suitable donors, following the behaviors described in Section 18.5.3.4, “Fault Tolerance for Distributed Recovery” . Note that if the joining member exhausts the list of advertised endpoints without making a connection, it does not fall back to the donor’s standard SQL client connection, but switches to another donor. 

6. When the joining member establishes a distributed recovery connection with a donor, it uses that connection for state transfer as described in Section 18.5.3, “Distributed Recovery” . The host and port for the connection that is used are shown in the joining member’s log. Note that if a remote cloning operation is used, when the joining member has restarted at the end of the operation, it establishes a connection with a new donor for state transfer from the binary log. This might be a connection to a different member from the original donor used for the remote cloning operation, or it might be a different connection to the original donor. In any case, the distributed recovery process continues in the same way as it would have with the original donor. 

## Selecting addresses for distributed recovery endpoints 

IP addresses supplied by the group_replication_advertise_recovery_endpoints  system variable as distributed recovery endpoints do not have to be configured for MySQL Server (that is, they do not have to be specified by the admin_address  system variable or in the list for the bind_address system variable). They do have to be assigned to the server. Any host names used must resolve to a local IP address. IPv4 and IPv6 addresses can be used. 

The ports supplied for the distributed recovery endpoints do have to be configured for MySQL Server, so they must be specified by the port , report_port , or admin_port  system variable. The server must listen for TCP/IP connections on these ports. If you specify the admin_port , the replication user for distributed recovery needs the SERVICE_CONNECTION_ADMIN  privilege to connect. Selecting the admin_port  keeps distributed recovery connections separate from regular MySQL client connections. 

Joining members try each of the endpoints in turn in the order they are specified on the list. If group_replication_advertise_recovery_endpoints  is set to DEFAULT  rather than a list of endpoints, the standard SQL client connection is offered. Note that the standard SQL client connection is not automatically included on a list of distributed recovery endpoints, and is not offered as a fallback if the donor’s list of endpoints is exhausted without a connection. If you want to offer the standard SQL client 

