Mysql
Mysql Innodb 集群複製
大家好, 這是我第一次做集群複製。但我堅持添加實例。我不知道為什麼會出現這個錯誤。“錯誤說 START GROUP_REPLICATION 命令失敗,因為初始化組通信層時出錯”。
我正在關注本教程 https://mysqlserverteam.com/mysql-innodb-cluster-8-0-a-hands-on-tutorial/
提前致謝
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. ```
用了幾天后。最後,找到解決方案。解決辦法是
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
。等/主機文件
# 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
主節點
# 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
輔助節點
# 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
第三節點
# 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