MySQL InnoDB Cluster – How to Resolve Add Instance Issue with Local Port

centos-7mysql-8.0mysql-innodb-cluster

I have an issue to add instance to MySQL InnoDB Cluster using MySQL Shell. Here are the steps that I have done:

  1. Login to one DB-01 node
  2. Run command: mysqlsh
  3. shell.connect('username@ip-address:port');
  4. cluster = dba.createCluster('cluster-name');
  5. Checking the cluster status: cluster.status(). Here is everything ok. I have one instance in the cluster.
  6. cluster.addInstance('username@ip-address-of-db-02-node:port');
  7. Getting an error.

MySQL log from DB-02 node contains the following errors:

[Repl] Plugin group_replication reported: '[GCS] Error connecting to all peers. Member join failed. Local port: 33061'
2020-12-26T14:40:29.234106Z 0 [ERROR] [MY-011735] [Repl] Plugin group_replication reported: '[GCS] The member was unable to join the group. Local port: 33061'

It's same when I try to add DB-03 node into cluster. All servers are in the same VLAN and have been configured using mysql shell (there is same user and pass for all nodes). IP tables service is not enabled and SELinux is disabled.

When I tried telnet from DB-02 to DB-01 on port 33061, it's opened but when I run telnet from DB-01 to DB-02 then connection is refused.

Does anyone have an idea how to fix this issue?

Best Answer

Your IP ranges most probably don't fall in the range of IPs that would be automatically added to the allowlist: https://dev.mysql.com/doc/refman/8.0/en/group-replication-ip-address-permissions.html

For that reason, you must manually configure the allowlist: https://dev.mysql.com/doc/mysql-shell/8.0/en/configuring-innodb-cluster.html#create-allowlist-servers