详细介绍MySQL Group Replication[Single-Primary Mode]的搭建部署过程

1,关于MySQL Group Replication

基于组的复制(group-basedreplication)是一种被使用在容错系统中的技术。replication-group(复制组)是由能够相互通信的多个服务器(节点)组成的。

在通信层,Groupreplication实现了一系列的机制:比如原子消息(atomicmessage delivery)和全序化消息(totalorderingof messages)。

这些原子化,抽象化的机制,为实现更先进的数据库复制方案提供了强有力的支持。

MySQL Group Replication正是基于这些技术和概念,实现了一种多主全更新的复制协议。

简而言之,一个Replication-group就是一组节点,每个节点都可以独立执行事务,而读写事务则会在于group内的其他节点进行协调之后再commit。

因此,当一个事务准备提交时,会自动在group内进行原子性的广播,告知其他节点变更了什么内容/执行了什么事务。

这种原子广播的方式,使得这个事务在每一个节点上都保持着同样顺序。

这意味着每一个节点都以同样的顺序,接收到了同样的事务日志,所以每一个节点以同样的顺序重演了这些事务日志,最终整个group保持了完全一致的状态。

 

然而,不同的节点上执行的事务之间有可能存在资源争用。这种现象容易出现在两个不同的并发事务上。

假设在不同的节点上有两个并发事务,更新了同一行数据,那么就会发生资源争用。

面对这种情况,GroupReplication判定先提交的事务为有效事务,会在整个group里面重演,后提交的事务会直接中断,或者回滚,最后丢弃掉。

 

因此,这也是一个无共享的复制方案,每一个节点都保存了完整的数据副本。看如下图片01.png,描述了具体的工作流程,能够简洁的和其他方案进行对比。这个复制方案,在某种程度上,和数据库状态机(DBSM)的Replication方法比较类似。

 详细介绍MySQL Group Replication[Single-Primary Mode]的搭建部署过程

 

2,安装mysql5.7.17

官方下载,不过官方只保留最新的version,5.7.17这个url地址不一定长期有效,所以,需要的不一定有,我这里在百度云盘保留了下来,版本是5.7.17,可以随时去下载使用,

 

在三台db服务器上面设置/etc/hosts映射,如下:

192.168.121.71     db1                                                                                                                                                                                                               

192.168.121.111     db2                       

192.168.121.24     db3

安装的数据库服务器:

数据库服务器地址                                                 

端口                                                

数据目录                                      

Server-id                                      

192.168.121.71(db1)

3317

/data/mysql/data

12001        

192.168.121.111(db2)

3317

/data/mysql/data

12002

192.168.121.24(db3)

3317

/data/mysql/data

12003

  

3,创建复制环境

设置hostname和ip映射

在db1、db2、db3上都设置

vim /etc/hosts192.168.121.71 db1 hch_test_dbm2_121_71                                                                                              192.168.121.111 db2 bpe_service192.168.121.24 db3 hch_test_web_1_24

在db1/db2/db3上建立复制账号:

@@######@@

4,安装group replication插件

在db1、db2、db3上依次安装group replication插件

GRANT REPLICATION SLAVE ON *.* TO  'repl'@'192.168.%' IDENTIFIED BY 'rlpbright_1927@ys';

plugin-load=group_replication或者直接在配置文件my.cnf中配置:

查看group replication组件

PHP5 MySQL 编程入门 PHP5 MySQL 编程入门

既有较为详细的PHP与MySQL基础知识介绍,也有大量针对不同应用的技术说明,并伴随了大量小而精的示例来加深读者的理解,便于通过实验来掌握知识并学会应用。令书以PHP开发者为核心,从环境搭建到系统开发,从局部技术点到项目全程把握,立体式介绍了PHP5+MySQL的技术要点以及丰富的延伸知识,可以让读者享受到提升开发能力的极速体验。

PHP5 MySQL 编程入门 412 查看详情 PHP5 MySQL 编程入门

mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';                        Query OK, 0 rows affected (0.01 sec) mysql>

5,配置group replication参数

确保binlog_format是row格式。

mysql> show plugins;+----------------------------+----------+--------------------+----------------------+---------+| Name                       | Status   | Type               | Library              | License |+----------------------------+----------+--------------------+----------------------+---------+| binlog                     | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     || mysql_native_password      | ACTIVE   | AUTHENTICATION     | NULL                 | GPL     || sha256_password            | ACTIVE   | AUTHENTICATION     | NULL                 | GPL     || MyISAM                     | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     || PERFORMANCE_SCHEMA         | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     || InnoDB                     | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     || INNODB_TRX                 | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_LOCKS               | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_LOCK_WAITS          | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_CMP                 | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_CMP_RESET           | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_CMPMEM              | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_CMPMEM_RESET        | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_CMP_PER_INDEX       | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_CMP_PER_INDEX_RESET | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_BUFFER_PAGE         | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_BUFFER_PAGE_LRU     | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_BUFFER_POOL_STATS   | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_TEMP_TABLE_INFO     | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_METRICS             | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_FT_DEFAULT_STOPWORD | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_FT_DELETED          | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_FT_BEING_DELETED    | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_FT_CONFIG           | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_FT_INDEX_CACHE      | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_FT_INDEX_TABLE      | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_SYS_TABLES          | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_SYS_TABLESTATS      | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_SYS_INDEXES         | ACTIVE   | INFORMATION SCHEMA | NULL              | GPL     || INNODB_SYS_COLUMNS         | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     || INNODB_SYS_FIELDS          | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_SYS_FOREIGN         | ACTIVE   | INFORMATION SCHEMA | NULL                | GPL     || INNODB_SYS_FOREIGN_COLS    | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     || INNODB_SYS_TABLESPACES     | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_SYS_DATAFILES       | ACTIVE   | INFORMATION SCHEMA | NULL              | GPL     || INNODB_SYS_VIRTUAL         | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || MRG_MYISAM                 | ACTIVE   | STORAGE ENGINE     | NULL              | GPL     || MEMORY                     | ACTIVE   | STORAGE ENGINE     | NULL              | GPL     || CSV                        | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     || BLACKHOLE                  | ACTIVE   | STORAGE ENGINE     | NULL               | GPL     || partition                  | ACTIVE   | STORAGE ENGINE     | NULL             | GPL     || FEDERATED                  | DISABLED | STORAGE ENGINE     | NULL            | GPL     || ARCHIVE                    | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     || ngram                      | ACTIVE   | FTPARSER      | NULL      | GPL     || group_replication          | ACTIVE   | GROUP REPLICATION  | group_replication.so | GPL     |+----------------------------+----------+--------------------+----------------------+---------+45 rows in set (0.00 sec) mysql>

两种配置方式,在线添加 OR 配置文件

5.1在线添加

配置:

(1)      配置命令如下,具体到某一个db节点会有所调整,大部分参数是一致的:

@@######@@

 

(2)      在db1执行过程如下:

@@######@@

 

 

(3)      在db2执行过程如下:

@@######@@

 

(4)      在db3执行过程如下:

@@######@@

 

5.2配置文件配置

(1) db1上的my.cnf配置:

@@######@@

 

(2)db2上的my.cnf配置:

@@######@@

 

(3)db3上的my.cnf配置:

@@######@@

 

配置完后,重启3个db上的mysql服务,本次案例,我们选择5.2 配置文件配置方式实现。

6,启动mgr集群

开始构建group replication集群,通常操作命令

mysql> show variables like 'binlog_format';                                            +---------------+-------+| Variable_name | Value |+---------------+-------+| binlog_format | ROW   |+---------------+-------+1 row in set (0.00 sec) mysql>

Db1上建立基本主库master库:

set  @@global.transaction_write_set_extraction = XXHASH64; set @@global.group_replication_start_on_boot  = OFF; set  @@global.group_replication_bootstrap_group = OFF; set @@global.group_replication_group_name =  "0c6d3e5f-90e2-11e6-802e-842b2b5909d6";                                                                                                                           set @@global.group_replication_local_address  = 'db1:6606'; set @@global.group_replication_group_seeds =  'db2:6607,db3:6608';

Db2上启动group_replication: 

mysql> set  @@global.transaction_write_set_extraction = XXHASH64;Query OK, 0 rows affected (0.00 sec) mysql> set  @@global.group_replication_start_on_boot = OFF;Query OK, 0 rows affected (0.00 sec) mysql> set  @@global.group_replication_bootstrap_group = OFF;Query OK, 0 rows affected (0.00 sec) mysql>mysql>set @@global.group_replication_group_name  = "0c6d3e5f-90e2-11e6-802e-842b2b5909d7";                             Query OK, 0 rows affected (0.00 sec) mysql> set  @@global.group_replication_local_address = 'db1:6606';Query OK, 0 rows affected (0.00 sec) mysql> set  @@global.group_replication_group_seeds = 'db2:6607,db3:6608';Query OK, 0 rows affected (0.00 sec) mysql>

Db3上启动group_replication:

mysql>   set @@global.transaction_write_set_extraction = XXHASH64;Query OK, 0 rows affected (0.00 sec) mysql>   set @@global.group_replication_start_on_boot = OFF;Query OK, 0 rows affected (0.00 sec) mysql>   set @@global.group_replication_bootstrap_group = OFF;Query OK, 0 rows affected (0.01 sec) mysql>   set @@global.group_replication_group_name =  "0c6d3e5f-90e2-11e6-802e-842b2b5909d6";Query OK, 0 rows affected (0.00 sec) mysql>   set  @@global.group_replication_local_address = 'db2:6607';Query OK, 0 rows affected (0.00 sec) mysql>  set @@global.group_replication_group_seeds =  'db1:6606,db3:6608';Query OK, 0 rows affected (0.01 sec) mysql>

最后查看集群状态,都为ONLINE就表示OK:

mysql>   set @@global.transaction_write_set_extraction = XXHASH64 ;Query OK, 0 rows affected (0.00 sec) mysql>   set @@global.group_replication_start_on_boot = OFF;Query OK, 0 rows affected (0.00 sec) mysql>   set @@global.group_replication_bootstrap_group = OFF ;Query OK, 0 rows affected (0.00 sec) mysql>   set @@global.group_replication_group_name =  "0c6d3e5f-90e2-11e6-802e-842b2b5909d6";Query OK, 0 rows affected (0.00 sec) mysql>   set  @@global.group_replication_local_address = 'db3:6608'  ;Query OK, 0 rows affected (0.00 sec) mysql>   set @@global.group_replication_group_seeds  = 'db1:6606,db2:6607' ;Query OK, 0 rows affected (0.00 sec) mysql>

7,验证集群复制功能

测试,在master库db1上建立测试库db1,测试表t1,录入一条数据

server-id=12001transaction_write_set_extraction =  XXHASH64loose-group_replication_group_name =  "5f847ff2-d701-11e6-819c-b8ca3af6e36c"                                                                                                                                                      loose-group_replication_start_on_boot =  offloose-group_replication_local_address  = "db1:23306"loose-group_replication_group_seeds =  "db1:23306,db2:23307,db3:23308"loose-group_replication_bootstrap_group =  offloose-group_replication_single_primary_mode  = trueloose-group_replication_enforce_update_everywhere_checks  = false

去db2/db3上可以看到数据已经同步过去

server-id=12002transaction_write_set_extraction = XXHASH64loose-group_replication_group_name =  "5f847ff2-d701-11e6-819c-b8ca3af6e36c"loose-group_replication_start_on_boot =  offloose-group_replication_local_address  = "db2:23307"loose-group_replication_group_seeds =  "db1:23306,db2:23307,db3:23308"loose-group_replication_bootstrap_group =  offloose-group_replication_single_primary_mode  = trueloose-group_replication_enforce_update_everywhere_checks  = false

然后在db2/db3上执行inert操作,则拒绝,因为db2、db3为readonly

server-id=12003transaction_write_set_extraction =  XXHASH64loose-group_replication_group_name =  "5f847ff2-d701-11e6-819c-b8ca3af6e36c"loose-group_replication_start_on_boot =  offloose-group_replication_local_address  = "db3:23308"loose-group_replication_group_seeds =  "db1:23306,db2:23307,db3:23308"loose-group_replication_bootstrap_group =  offloose-group_replication_single_primary_mode  = trueloose-group_replication_enforce_update_everywhere_checks  = false

8,问题记录

8.1问题记录一

MySQL窗口报错:

mysql>  CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='rlpbright_1927@ys' FOR CHANNEL 'group_replication_recovery';Query OK, 0 rows affected, 2 warnings (0.02 sec) mysql>

 

【解决办法】:

根据提示打开group_replication_allow_local_disjoint_gtids_join选项,mysql命令行执行:

# 设置group_replication_bootstrap_group为ON是为了标示以后加入集群的服务器以这台服务器为基准,以后加入的就不需要设置。mysql> SET GLOBAL group_replication_bootstrap_group = ON;Query OK, 0 rows affected (0.00 sec) mysql>  START GROUP_REPLICATION;Query OK, 0 rows affected (1.03 sec) mysql> SELECT * FROM performance_schema.replication_group_members;+---------------------------+--------------------------------------+----------------------+-------------+--------------+| CHANNEL_NAME         | MEMBER_ID  | MEMBER_HOST          | MEMBER_PORT | MEMBER_STATE |+---------------------------+--------------------------------------+----------------------+-------------+--------------+| group_replication_applier | 3d872c2e-d670-11e6-ac1f-b8ca3af6e36c | hch_test_dbm2_121_71 |   3317 | ONLINE  |+---------------------------+--------------------------------------+----------------------+-------------+--------------+1 row in set (0.00 sec) mysql>

再执行开启组复制:

Db2上mysql命令行上执行启动:mysql>  START GROUP_REPLICATION;Query OK, 0 rows affected (1.02 sec) mysql> db1上后台error log显示:2017-01-10T07:37:39.946919Z 0 [Note] Plugin group_replication reported: 'getstart group_id 41e28b21'2017-01-10T07:58:47.624090Z 0 [Note] Plugin group_replication reported: 'getstart group_id 41e28b21'2017-01-10T07:58:53.116957Z 0 [Note] Plugin group_replication reported: 'Marking group replication view change with view_id 14840330835325176:6' 再去master库db1上,查看group_replication成员,会有db2的显示mysql>  SELECT * FROM performance_schema.replication_group_members;+---------------------------+--------------------------------------+----------------------+-------------+--------------+| CHANNEL_NAME              | MEMBER_ID   | MEMBER_HOST          | MEMBER_PORT | MEMBER_STATE |+---------------------------+--------------------------------------+----------------------+-------------+--------------+| group_replication_applier | 3d872c2e-d670-11e6-ac1f-b8ca3af6e36c | hch_test_dbm2_121_71 |        3317 | ONLINE       || group_replication_applier | fdf2b02e-d66f-11e6-98a8-18a99b76310d | bpe_service          |        3317 | ONLINE       |+---------------------------+--------------------------------------+----------------------+-------------+--------------+2 rows in set (0.00 sec) mysql>

8.2 问题记录二RECOVERING  

在db1上查询集群组成员

-- Db3命令行上执行:mysql> set global group_replication_allow_local_disjoint_gtids_join=ON;Query OK, 0 rows affected (0.00 sec) mysql> start group_replication;Query OK, 0 rows affected (1.99 sec) mysql> -- 再去master库db1上,查看group_replication成员,会有db3的显示,而且已经是ONLINE了mysql>  SELECT * FROM performance_schema.replication_group_members;+---------------------------+--------------------------------------+----------------------+-------------+--------------+| CHANNEL_NAME              | MEMBER_ID    | MEMBER_HOST          | MEMBER_PORT | MEMBER_STATE |+---------------------------+--------------------------------------+----------------------+-------------+--------------+| group_replication_applier | 3d872c2e-d670-11e6-ac1f-b8ca3af6e36c | hch_test_dbm2_121_71 |        3317 | ONLINE       || group_replication_applier | ef8ac2de-d671-11e6-9ba4-18a99b763071 | hch_test_web_1_24    |        3317 | ONLINE       || group_replication_applier | fdf2b02e-d66f-11e6-98a8-18a99b76310d | bpe_service          |        3317 | ONLINE       |+---------------------------+--------------------------------------+----------------------+-------------+--------------+3 rows in set (0.01 sec) mysql> -- db1上后台error log显示:2017-01-10T08:00:28.866356Z 0 [Note] Plugin group_replication reported: 'getstart group_id 41e28b21'2017-01-10T08:00:54.699130Z 0 [Note] Plugin group_replication reported: 'getstart group_id 41e28b21'2017-01-10T08:00:56.567427Z 0 [Note] Plugin group_replication reported: 'Marking group replication view change with view_id 14840330835325176:9'

再查看后台error日志,

mysql> SELECT * FROM performance_schema.replication_group_members;+---------------------------+--------------------------------------+----------------------+-------------+--------------+| CHANNEL_NAME              | MEMBER_ID   | MEMBER_HOST          | MEMBER_PORT | MEMBER_STATE |+---------------------------+--------------------------------------+----------------------+-------------+--------------+| group_replication_applier | 3d872c2e-d670-11e6-ac1f-b8ca3af6e36c | hch_test_dbm2_121_71 |        3317 | ONLINE       || group_replication_applier | ef8ac2de-d671-11e6-9ba4-18a99b763071 | hch_test_web_1_24    |        3317 | ONLINE       || group_replication_applier | fdf2b02e-d66f-11e6-98a8-18a99b76310d | bpe_service          |        3317 | ONLINE       |+---------------------------+--------------------------------------+----------------------+-------------+--------------+3 rows in set (0.00 sec) mysql>

【解决办法】:

看报错[ERROR] Slave I/O for channel’group_replication_recovery’: error connecting to master ‘repl@hch_test_dbm2_121_71:3317’- retry-time: 60  retries: 1, Error_code:2005,连接master库不上,所以问题在这里,我们赋予的复制账号是ip的repl@’192.168.%’,所以还需要做一个hostname(hch_test_dbm2_121_71)和db1的ip地址192.168.121.71的映射关系。

 

建立hostname和ip映射

mysql> create database db1;Query OK, 1 row affected (0.00 sec) mysql> create table db1.t1(id int,cnvarchar(32));Query OK, 0 rows affected (0.02 sec) mysql>mysql> insert into t1 select 1,'a';ERROR 3098 (HY000): The table does notcomply with the requirements by an external plugin.mysql>mysql> insert into t1(id,cn)values(1,'a');ERROR 3098 (HY000): The table does notcomply with the requirements by an external plugin.mysql>mysql>-- # 这里原因是group_replaction环境下面,表必须有主键不然不允许往里insert值。所以修改表t1,将id字段设置程主键即可。mysql> alter table t1 modify id intprimary key;Query OK, 0 rows affected (0.02 sec)Records: 0 Duplicates: 0  Warnings: 0 mysql> insert into t1 select 1,'a';Query OK, 1 row affected (0.01 sec)Records: 1 Duplicates: 0  Warnings: 0 mysql>

然后在db2上执行如下命令后重新开启group_replication即可。

mysql> select * from db1.t1;+----+------+| id | cn  |+----+------+|  1| a    |+----+------+1 row in set (0.00 sec) mysql>

再去master库db1上,查看group_replication成员,会有db2的显示

mysql> insert into t1 select 2,'b';ERROR 1290 (HY000): The MySQL server isrunning with the --super-read-only option so it cannot execute this statementmysql>

8.3问题记录三

操作问题

ERROR 3092 (HY000): The server is notconfigured properly to be an active member of the group. Please see moredetails on error log.后台ERROR LOG报错:[ERROR] Plugin group_replication reported:'This member has more executed transactions than those present in the group.Local transactions: f16f7f74-c283-11e6-ae37-fa163ee40410:1 > Grouptransactions: 3c992270-c282-11e6-93bf-fa163ee40410:1, aaaaaa:1-5' [ERROR]Plugin group_replication reported: 'The member contains transactions notpresent in the group. The member will now exit the group.' [Note] Plugin group_replication reported: 'Toforce this member into the group you can use the group_replication_allow_local_disjoint_gtids_joinoption'

 

【解决办法】:

mysql> set globalgroup_replication_allow_local_disjoint_gtids_join=ON;
mysql> start group_replication;Query OK, 0 rows affected (7.89 sec) mysql>
mysql> SELECT * FROM performance_schema.replication_group_members;+---------------------------+--------------------------------------+----------------------+-------------+--------------+| CHANNEL_NAME     | MEMBER_ID     | MEMBER_HOST     | MEMBER_PORT | MEMBER_STATE |+---------------------------+--------------------------------------+----------------------+-------------+--------------+| group_replication_applier | 3d872c2e-d670-11e6-ac1f-b8ca3af6e36c | hch_test_dbm2_121_71 |       3317 | ONLINE       || group_replication_applier | ef8ac2de-d671-11e6-9ba4-18a99b763071 | hch_test_web_1_24    |       3317 | RECOVERING   || group_replication_applier | fdf2b02e-d66f-11e6-98a8-18a99b76310d | bpe_service        |    3317 | RECOVERING   |+---------------------------+--------------------------------------+----------------------+-------------+--------------+3 rows in set (0.00 sec) mysql>
2017-01-10T09:17:39.449488Z 146 [ERROR] Slave I/O for channel 'group_replication_recovery': error connecting to master 'repl@hch_test_dbm2_121_71:3317' - retry-time: 60  retries: 1, Error_code: 20032017-01-10T09:17:39.450289Z 146 [Note] Slave I/O thread for channel 'group_replication_recovery' killed while connecting to master2017-01-10T09:17:39.450449Z 146 [Note] Slave I/O thread exiting for channel 'group_replication_recovery', read up to log 'FIRST', position 42017-01-10T09:17:39.451579Z 144 [ERROR] Plugin group_replication reported: 'There was an error when connecting to the donor server. Check group replication recovery's connection credentials.'2017-01-10T09:17:39.452341Z 144 [Note] Plugin group_replication reported: 'Retrying group recovery connection with another donor. Attempt 2/10'2017-01-10T09:17:39.457834Z 0 [Note] Plugin group_replication reported: 'Marking group replication view change with view_id 14840330835325176:25'2017-01-10T09:18:39.456629Z 144 [Note] 'CHANGE MASTER TO FOR CHANNEL 'group_replication_recovery' executed'. Previous state master_host='hch_test_dbm2_121_71', master_port= 3317, master_log_file='', master_log_pos= 4, master_bind=''. New state master_host='hch_test_dbm2_121_71', master_port= 3317, master_log_file='', master_log_pos= 4, master_bind=''.2017-01-10T09:18:39.485250Z 144 [Note] Plugin group_replication reported: 'Establishing connection to a group replication recovery donor 3d872c2e-d670-11e6-ac1f-b8ca3af6e36c at hch_test_dbm2_121_71 port: 3317.'2017-01-10T09:18:39.489356Z 150 [Warning] Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.2017-01-10T09:18:39.493511Z 150 [ERROR] Slave I/O for channel 'group_replication_recovery': error connecting to master 'repl@hch_test_dbm2_121_71:3317' - retry-time: 60  retries: 1, Error_code: 20052017-01-10T09:18:39.493912Z 150 [Note] Slave I/O thread for channel 'group_replication_recovery' killed while connecting to master2017-01-10T09:18:39.494069Z 150 [Note] Slave I/O thread exiting for channel 'group_replication_recovery', read up to log 'FIRST', position 42017-01-10T09:18:39.495155Z 144 [ERROR] Plugin group_replication reported: 'There was an error when connecting to the donor server. Check group replication recovery's connection credentials.'2017-01-10T09:18:39.496838Z 144 [Note] Plugin group_replication reported: 'Retrying group recovery connection with another donor. Attempt 3/10'
vim /etc/hosts192.168.121.71 db1 hch_test_dbm2_121_71                                          192.168.121.111 db2 bpe_service192.168.121.24 db3 hch_test_web_1_24
mysql> stop group_replication;Query OK, 0 rows affected (0.02 sec)                                                  mysql> start group_replication;Query OK, 0 rows affected (5.68 sec) mysql>
mysql>  SELECT * FROM performance_schema.replication_group_members;+---------------------------+--------------------------------------+----------------------+-------------+--------------+| CHANNEL_NAME   | MEMBER_ID     | MEMBER_HOST          | MEMBER_PORT | MEMBER_STATE |+---------------------------+--------------------------------------+----------------------+-------------+--------------+| group_replication_applier | 3d872c2e-d670-11e6-ac1f-b8ca3af6e36c | hch_test_dbm2_121_71 |        3317 | ONLINE       || group_replication_applier | fdf2b02e-d66f-11e6-98a8-18a99b76310d | bpe_service          |        3317 | ONLINE       |+---------------------------+--------------------------------------+----------------------+-------------+--------------+2 rows in set (0.00 sec) mysql>
mysql>mysql> START GROUP_REPLICATION;ERROR 3092 (HY000): The server is notconfigured properly to be an active member of the group. Please see moredetails on error log.
mysql> SET GLOBALgroup_replication_bootstrap_group = ON;Query OK, 0 rows affected (0.00 sec) mysql> START GROUP_REPLICATION;Query OK, 0 rows affected (1.03 sec) mysql>

以上就是详细介绍MySQL Group Replication[Single-Primary Mode]的搭建部署过程的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/797649.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月26日 16:38:21
下一篇 2025年11月26日 16:40:08

相关推荐

  • Uniapp 中如何不拉伸不裁剪地展示图片?

    灵活展示图片:如何不拉伸不裁剪 在界面设计中,常常需要以原尺寸展示用户上传的图片。本文将介绍一种在 uniapp 框架中实现该功能的简单方法。 对于不同尺寸的图片,可以采用以下处理方式: 极端宽高比:撑满屏幕宽度或高度,再等比缩放居中。非极端宽高比:居中显示,若能撑满则撑满。 然而,如果需要不拉伸不…

    2025年12月24日
    400
  • 如何让小说网站控制台显示乱码,同时网页内容正常显示?

    如何在不影响用户界面的情况下实现控制台乱码? 当在小说网站上下载小说时,大家可能会遇到一个问题:网站上的文本在网页内正常显示,但是在控制台中却是乱码。如何实现此类操作,从而在不影响用户界面(UI)的情况下保持控制台乱码呢? 答案在于使用自定义字体。网站可以通过在服务器端配置自定义字体,并通过在客户端…

    2025年12月24日
    800
  • 如何在地图上轻松创建气泡信息框?

    地图上气泡信息框的巧妙生成 地图上气泡信息框是一种常用的交互功能,它简便易用,能够为用户提供额外信息。本文将探讨如何借助地图库的功能轻松创建这一功能。 利用地图库的原生功能 大多数地图库,如高德地图,都提供了现成的信息窗体和右键菜单功能。这些功能可以通过以下途径实现: 高德地图 JS API 参考文…

    2025年12月24日
    400
  • 如何使用 scroll-behavior 属性实现元素scrollLeft变化时的平滑动画?

    如何实现元素scrollleft变化时的平滑动画效果? 在许多网页应用中,滚动容器的水平滚动条(scrollleft)需要频繁使用。为了让滚动动作更加自然,你希望给scrollleft的变化添加动画效果。 解决方案:scroll-behavior 属性 要实现scrollleft变化时的平滑动画效果…

    2025年12月24日
    000
  • 如何为滚动元素添加平滑过渡,使滚动条滑动时更自然流畅?

    给滚动元素平滑过渡 如何在滚动条属性(scrollleft)发生改变时为元素添加平滑的过渡效果? 解决方案:scroll-behavior 属性 为滚动容器设置 scroll-behavior 属性可以实现平滑滚动。 html 代码: click the button to slide right!…

    2025年12月24日
    500
  • 如何选择元素个数不固定的指定类名子元素?

    灵活选择元素个数不固定的指定类名子元素 在网页布局中,有时需要选择特定类名的子元素,但这些元素的数量并不固定。例如,下面这段 html 代码中,activebar 和 item 元素的数量均不固定: *n *n 如果需要选择第一个 item元素,可以使用 css 选择器 :nth-child()。该…

    2025年12月24日
    200
  • 使用 SVG 如何实现自定义宽度、间距和半径的虚线边框?

    使用 svg 实现自定义虚线边框 如何实现一个具有自定义宽度、间距和半径的虚线边框是一个常见的前端开发问题。传统的解决方案通常涉及使用 border-image 引入切片图片,但是这种方法存在引入外部资源、性能低下的缺点。 为了避免上述问题,可以使用 svg(可缩放矢量图形)来创建纯代码实现。一种方…

    2025年12月24日
    100
  • 如何让“元素跟随文本高度,而不是撑高父容器?

    如何让 元素跟随文本高度,而不是撑高父容器 在页面布局中,经常遇到父容器高度被子元素撑开的问题。在图例所示的案例中,父容器被较高的图片撑开,而文本的高度没有被考虑。本问答将提供纯css解决方案,让图片跟随文本高度,确保父容器的高度不会被图片影响。 解决方法 为了解决这个问题,需要将图片从文档流中脱离…

    2025年12月24日
    000
  • 为什么 CSS mask 属性未请求指定图片?

    解决 css mask 属性未请求图片的问题 在使用 css mask 属性时,指定了图片地址,但网络面板显示未请求获取该图片,这可能是由于浏览器兼容性问题造成的。 问题 如下代码所示: 立即学习“前端免费学习笔记(深入)”; icon [data-icon=”cloud”] { –icon-cl…

    2025年12月24日
    200
  • 如何利用 CSS 选中激活标签并影响相邻元素的样式?

    如何利用 css 选中激活标签并影响相邻元素? 为了实现激活标签影响相邻元素的样式需求,可以通过 :has 选择器来实现。以下是如何具体操作: 对于激活标签相邻后的元素,可以在 css 中使用以下代码进行设置: li:has(+li.active) { border-radius: 0 0 10px…

    2025年12月24日
    100
  • 如何模拟Windows 10 设置界面中的鼠标悬浮放大效果?

    win10设置界面的鼠标移动显示周边的样式(探照灯效果)的实现方式 在windows设置界面的鼠标悬浮效果中,光标周围会显示一个放大区域。在前端开发中,可以通过多种方式实现类似的效果。 使用css 使用css的transform和box-shadow属性。通过将transform: scale(1.…

    2025年12月24日
    200
  • 为什么我的 Safari 自定义样式表在百度页面上失效了?

    为什么在 Safari 中自定义样式表未能正常工作? 在 Safari 的偏好设置中设置自定义样式表后,您对其进行测试却发现效果不同。在您自己的网页中,样式有效,而在百度页面中却失效。 造成这种情况的原因是,第一个访问的项目使用了文件协议,可以访问本地目录中的图片文件。而第二个访问的百度使用了 ht…

    2025年12月24日
    000
  • 如何用前端实现 Windows 10 设置界面的鼠标移动探照灯效果?

    如何在前端实现 Windows 10 设置界面中的鼠标移动探照灯效果 想要在前端开发中实现 Windows 10 设置界面中类似的鼠标移动探照灯效果,可以通过以下途径: CSS 解决方案 DEMO 1: Windows 10 网格悬停效果:https://codepen.io/tr4553r7/pe…

    2025年12月24日
    000
  • 使用CSS mask属性指定图片URL时,为什么浏览器无法加载图片?

    css mask属性未能加载图片的解决方法 使用css mask属性指定图片url时,如示例中所示: mask: url(“https://api.iconify.design/mdi:apple-icloud.svg”) center / contain no-repeat; 但是,在网络面板中却…

    2025年12月24日
    000
  • 如何用CSS Paint API为网页元素添加时尚的斑马线边框?

    为元素添加时尚的斑马线边框 在网页设计中,有时我们需要添加时尚的边框来提升元素的视觉效果。其中,斑马线边框是一种既醒目又别致的设计元素。 实现斜向斑马线边框 要实现斜向斑马线间隔圆环,我们可以使用css paint api。该api提供了强大的功能,可以让我们在元素上绘制复杂的图形。 立即学习“前端…

    2025年12月24日
    000
  • 图片如何不撑高父容器?

    如何让图片不撑高父容器? 当父容器包含不同高度的子元素时,父容器的高度通常会被最高元素撑开。如果你希望父容器的高度由文本内容撑开,避免图片对其产生影响,可以通过以下 css 解决方法: 绝对定位元素: .child-image { position: absolute; top: 0; left: …

    2025年12月24日
    000
  • CSS 帮助

    我正在尝试将文本附加到棕色框的左侧。我不能。我不知道代码有什么问题。请帮助我。 css .hero { position: relative; bottom: 80px; display: flex; justify-content: left; align-items: start; color:…

    2025年12月24日 好文分享
    200
  • 前端代码辅助工具:如何选择最可靠的AI工具?

    前端代码辅助工具:可靠性探讨 对于前端工程师来说,在HTML、CSS和JavaScript开发中借助AI工具是司空见惯的事情。然而,并非所有工具都能提供同等的可靠性。 个性化需求 关于哪个AI工具最可靠,这个问题没有一刀切的答案。每个人的使用习惯和项目需求各不相同。以下是一些影响选择的重要因素: 立…

    2025年12月24日
    000
  • 如何用 CSS Paint API 实现倾斜的斑马线间隔圆环?

    实现斑马线边框样式:探究 css paint api 本文将探究如何使用 css paint api 实现倾斜的斑马线间隔圆环。 问题: 给定一个有多个圆圈组成的斑马线图案,如何使用 css 实现倾斜的斑马线间隔圆环? 答案: 立即学习“前端免费学习笔记(深入)”; 使用 css paint api…

    2025年12月24日
    000
  • 如何使用CSS Paint API实现倾斜斑马线间隔圆环边框?

    css实现斑马线边框样式 想定制一个带有倾斜斑马线间隔圆环的边框?现在使用css paint api,定制任何样式都轻而易举。 css paint api 这是一个新的css特性,允许开发人员创建自定义形状和图案,其中包括斑马线样式。 立即学习“前端免费学习笔记(深入)”; 实现倾斜斑马线间隔圆环 …

    2025年12月24日
    100

发表回复

登录后才能评论
关注微信