0

Hello Everyone, This is the first time I'm doing cluster replication. But I stuck on Adding Instance. I don't know why this error is coming behind. "The error says The START GROUP_REPLICATION command failed as there was an error when initializing the group communication layer".

I am following this tutorial https://mysqlserverteam.com/mysql-innodb-cluster-8-0-a-hands-on-tutorial/

Thanks in Advance

NOTE: The target instance '*********' has not been pre-provisioned (GTID set is empty). The Shell is unable to decide whether incremental state recovery can correctly provision it.
The safest and most convenient way to provision a new instance is through automatic clone provisioning, which will completely overwrite the state of
'********:3306' with a physical snapshot from an existing cluster member. To use this method by default, set the 'recovery method' option to 'clone'.

The incremental state recovery may be safely used if you are sure all updates ever executed in the cluster were done with GTIDs enabled, there are no
purged transactions and the new instance contains the same GTID set as the cluster or a subset of it. To use this method by default, set the 'recoveryMethod' option to 'incremental'.

Please select a recovery method [C]lone/[I]ncremental recovery/[A]bort (default Clone):
Validating instance configuration at *********:3306...
This instance reports its own address as *********
Instance configuration is suitable.
NOTE: Group Replication will communicate with other members using '*********:33061'. Use the local address option to override.

A new instance will be added to the InnoDB cluster. Depending on the amount of
data on the cluster this might take from a few seconds to several hours.

Adding instance to the cluster...

ERROR: Unable to start Group Replication for instance 'Mysql-Cluster-Test:3306'.
The MySQL error_log contains the following messages:
  2021-02-04 12:14:06.019727 [System] [MY-013587] Plugin group_replication reported: 'Plugin 'group_replication' is starting.'
  2021-02-04 12:14:06.023702 [Warning] [MY-011735] Plugin group_replication reported: '[GCS] Peer address "*******:33061" is not valid.'
  2021-02-04 12:14:06.023739 [Error] [MY-011735] Plugin group_replication reported: '[GCS] None of the provided peer address is valid.'
  2021-02-04 12:14:06.023957 [Error] [MY-011674] Plugin group_replication reported: 'Unable to initialize the group communication engine'
  2021-02-04 12:14:06.023981 [Error] [MY-011637] Plugin group_replication reported: 'Error on group communication engine initialization'
Cluster.addInstance: Group Replication failed to start: MySQL Error 3096 (HY000): *******:3306: The START GROUP_REPLICATION command failed. ```
6
  • How did you verify that network communications between peers on port 33061 is possible?
    – mustaccio
    Feb 5 at 12:53
  • Is there a lot of other traffic on the network segment? Clone is a very fast way to copy InnoDB tables spaces but it does take some badwidth. Feb 5 at 12:57
  • @mustaccio Sir, I opened the port and check with the ping command
    – Karan
    Feb 5 at 13:02
  • You cannot check if a port is open with ping.
    – mustaccio
    Feb 5 at 13:14
  • @mustaccio Yes sir right. There is my mistake I write the wrong in the last comment. Actually sir I'm using forge laravel. I checked with telnet and also login with a remote connection through mysql-shell
    – Karan
    Feb 5 at 13:33
1

After spending a couple of days. Finally, find the solution. The solution is You have to whitelist IP of a primary and secondary node's in the /etc/hosts file in the primary Node. And Paste this below configuration in the /etc/mysql/my.cnf config file in all secondary node's. Please increment the server_id in all nodes.

etc/hosts file

# Your system has configured 'manage_etc_hosts' as True.
# As a result, if you wish for changes to this file to persist
# then you will need to either
# a.) make changes to the master file in /etc/cloud/templates/hosts.debian.tmpl
# b.) change or remove the value of 'manage_etc_hosts' in
#     /etc/cloud/cloud.cfg or cloud-config from user-data
#
127.0.0.1 .localdomain MYSQL-CLUSTER
127.0.0.1 localhost

123.22.33.44 test1
22.33.44.55  test2
33.44.55.66  test3

#
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts


Primary Node

# General replication settings
gtid_mode = ON
enforce_gtid_consistency = ON
master_info_repository = TABLE
relay_log_info_repository = TABLE
binlog_checksum = NONE
log_slave_updates = ON
log_bin = binlog
binlog_format = ROW
transaction_write_set_extraction = XXHASH64
loose-group_replication_bootstrap_group = OFF
loose-group_replication_start_on_boot = OFF
loose-group_replication_ssl_mode = REQUIRED
loose-group_replication_recovery_use_ssl = 1

# Shared replication group configuration
#loose-group_replication_group_name = ""
loose-group_replication_ip_whitelist = "123.22.33.44,22.33.44.55,33.44.55.66"
loose-group_replication_group_seeds = "123.22.33.44:33061,22.33.44.55:33061,33.44.55.66:33061"

# Single or Multi-primary mode? Uncomment these two lines
# for multi-primary mode, where any host can accept writes
#loose-group_replication_single_primary_mode = OFF
loose-group_replication_enforce_update_everywhere_checks = ON

# Host specific replication configuration
server_id = 1
bind-address = 123.22.33.44
report_host = 123.22.33.44
loose-group_replication_local_address = 123.22.33.44:33061

Secondary Node

# General replication settings
gtid_mode = ON
enforce_gtid_consistency = ON
master_info_repository = TABLE
relay_log_info_repository = TABLE
binlog_checksum = NONE
log_slave_updates = ON
log_bin = binlog
binlog_format = ROW
transaction_write_set_extraction = XXHASH64
loose-group_replication_bootstrap_group = OFF
loose-group_replication_start_on_boot = OFF
loose-group_replication_ssl_mode = REQUIRED
loose-group_replication_recovery_use_ssl = 1

# Shared replication group configuration
#loose-group_replication_group_name = ""
loose-group_replication_ip_whitelist = "22.33.44.55,123.22.33.44,33.44.55.66"
loose-group_replication_group_seeds = "22.33.44.55:33061,123.22.33.44:33061, 33.44.55.66:33061"

# Single or Multi-primary mode? Uncomment these two lines
# for multi-primary mode, where any host can accept writes
#loose-group_replication_single_primary_mode = OFF
loose-group_replication_enforce_update_everywhere_checks = ON

# Host specific replication configuration
server_id = 2
bind-address = 22.33.44.55
report_host = 22.33.44.55
loose-group_replication_local_address = 22.33.44.55:33061

Third Node

# General replication settings
gtid_mode = ON
enforce_gtid_consistency = ON
master_info_repository = TABLE
relay_log_info_repository = TABLE
binlog_checksum = NONE
log_slave_updates = ON
log_bin = binlog
binlog_format = ROW
transaction_write_set_extraction = XXHASH64
loose-group_replication_bootstrap_group = OFF
loose-group_replication_start_on_boot = OFF
loose-group_replication_ssl_mode = REQUIRED
loose-group_replication_recovery_use_ssl = 1

# Shared replication group configuration
#loose-group_replication_group_name = ""
loose-group_replication_ip_whitelist = "22.33.44.55,123.22.33.44,33.44.55.66"
loose-group_replication_group_seeds = "22.33.44.55:33061,123.22.33.44:33061, 33.44.55.66:33061"

# Single or Multi-primary mode? Uncomment these two lines
# for multi-primary mode, where any host can accept writes
#loose-group_replication_single_primary_mode = OFF
loose-group_replication_enforce_update_everywhere_checks = ON

# Host specific replication configuration
server_id = 3
bind-address = 33.44.55.66
report_host = 33.44.55.66
loose-group_replication_local_address = 33.44.55.66:33061

I followed this tutorial https://www.digitalocean.com/community/tutorials/how-to-configure-mysql-group-replication-on-ubuntu-16-04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.