mysql同步复制M-M(master master)模式

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 转:题记:关于mysql 同步复制技术的文章,M-S方式的非常多,本篇是我做的M-M模式的测试记录:一。前期准备机器A:ip地址 192.168.1.210 (maste1)机器B:ip地址  192.168.1.211  (master2)机器A同时充当Slave角色,为便于区分,名称设为 Slave2机器B同时充当Slave角色,为便于区分,名称设为 Slave1假设两台机器都已经安装好mysql,安装路径假设/usr/local/mysql/下,并假设mysql配置文件my.cnf存放在/etc/下二。
转:题记:关于mysql 同步复制技术的文章,M-S方式的非常多,本篇是我做的M-M模式的测试记录:

一。前期准备

机器A:ip地址 192.168.1.210 (maste1)

机器B:ip地址  192.168.1.211  (master2)

机器A同时充当Slave角色,为便于区分,名称设为 Slave2

机器B同时充当Slave角色,为便于区分,名称设为 Slave1

假设两台机器都已经安装好mysql,安装路径假设/usr/local/mysql/下,并假设

mysql配置文件my.cnf存放在/etc/下

二。修改机器A中mysql配置文件/etc/my.cnf

在[mysqld]配置段添加如下字段

引用
binlog-do-db= wywdb       # 指明欲同步数据库
binlog-ignore-db=mysql    #  指明不需要同步数据库
binlog-ignore-db=test      # 指明不需要同步数据库

并假设次server id 为1,即
server-id=1

在机器A,即master1上为机器B,即slave1添加一同步帐号
引用
grant replication slave on *.* to ‘replication’@192.168.1.211 identified by ’slave’;


然后重启A机器mysql

三。修改B机器中mysql配置文件

同样在[mysqld]字段下添加如下内容
引用
server-id=2
master-host = 192.168.1.210
master-user = replication
master-password = slave
master-port = 3306


然后重启B机器mysql
 
四。在B中进入mysql
引用
mysql> start slave;
mysql> show slave status\G;
*************************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: 192.168.1.210
                Master_User: replication
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: mysql-bin.000003
        Read_Master_Log_Pos: 98
             Relay_Log_File: webserver-relay-bin.000004
              Relay_Log_Pos: 235
      Relay_Master_Log_File: mysql-bin.000003
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
            Replicate_Do_DB:
        Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
        Exec_Master_Log_Pos: 98
            Relay_Log_Space: 235
            Until_Condition: None
             Until_Log_File:
              Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File:
         Master_SSL_CA_Path:
            Master_SSL_Cert:
          Master_SSL_Cipher:
             Master_SSL_Key:
      Seconds_Behind_Master: 0
1 row in set (0.00 sec)

ERROR:
No query specified


将显示以上同步信息,其中Slave_IO_Running和Slave_SQL_Running对应字段内容都为yes,
并且Slave_IO_State显示“Waiting for master to send event”,则表示mysql的Master和Slave
模式配置成功,否则表示不成功,可查看相应日志,查看什么地方出现了问题。

此时还可可进去A机器中查看master1的mysql同步信息,并可与B机器mysql对比。
在A机器中进入mysql:

引用
mysql> show master status;
+——————+———-+————–+——————+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000003 |       98 | wywdb        | mysql,test       |
+——————+———-+————–+——————+
1 row in set (0.00 sec)


五。在机器B中为其增加一同步复制帐号
mysql> grant replication slave on *.* to ‘replication’@192.168.1.210 identified by ’slave2′;

并修改A中mysql的配置文件
在[mysqld]增加如下内容
master-host = 192.168.1.211
master-user = replication
master-password = slave2
master-port = 3306

六。依次重启A和B中mysql
  进A中mysql
mysql> start slave;

然后可以查看同步情况
进入A中:

引用
mysql> show slave status\G;
*************************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: 192.168.1.211
                Master_User: replication
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: mysql-bin.000004
        Read_Master_Log_Pos: 98
             Relay_Log_File: centos-relay-bin.000005
              Relay_Log_Pos: 235
      Relay_Master_Log_File: mysql-bin.000004
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
            Replicate_Do_DB:
        Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
        Exec_Master_Log_Pos: 98
            Relay_Log_Space: 235
            Until_Condition: None
             Until_Log_File:
              Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File:
         Master_SSL_CA_Path:
            Master_SSL_Cert:
          Master_SSL_Cipher:
             Master_SSL_Key:
      Seconds_Behind_Master: 0
1 row in set (0.00 sec)

ERROR:
No query specified

mysql> show master status;
+——————+———-+————–+——————+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000004 |       98 | wywdb        | mysql,test       |
+——————+———-+————–+——————+
1 row in set (0.00 sec)
在B中:
mysql> show slave status\G;
*************************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: 192.168.1.210
                Master_User: replication
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: mysql-bin.000004
        Read_Master_Log_Pos: 98
             Relay_Log_File: webserver-relay-bin.000007
              Relay_Log_Pos: 235
      Relay_Master_Log_File: mysql-bin.000004
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
            Replicate_Do_DB:
        Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
        Exec_Master_Log_Pos: 98
            Relay_Log_Space: 235
            Until_Condition: None
             Until_Log_File:
              Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File:
         Master_SSL_CA_Path:
            Master_SSL_Cert:
          Master_SSL_Cipher:
             Master_SSL_Key:
      Seconds_Behind_Master: 0
1 row in set (0.00 sec)

ERROR:
No query specified


引用
mysql> show master status;
+——————+———-+————–+——————+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000004 |       98 | wywdb        |                  |
+——————+———-+————–+——————+
1 row in set (0.00 sec)

看到如上信息证明mysql的master和master模式同步配置成功。
七。简单同步验证测试
在A中
引用

mysql> use wywdb
Database changed

mysql> create table test(id int,name varchar(20));
Query OK, 0 rows affected (0.03 sec)

mysql> insert into test values(1,’wanzhihua’);
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+——+———–+
| id   | name      |
+——+———–+
|    1 | wanzhihua |
+——+———–+
1 row in set (0.01 sec)


然后进入B中
引用
mysql> use wywdb
Database changed

mysql> select * from test;
+——+———–+
| id   | name      |
+——+———–+
|    1 | wanzhihua |
+——+———–+
1 row in set (0.00 sec)


证明A--->B同步成功

接着


mysql> insert into test values (2, ’shenyanfei’);
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+——+————+
| id   | name       |
+——+————+
|    1 | wanzhihua  |
|    2 | shenyanfei |
+——+————+
2 rows in set (0.01 sec)

然后进去A中

引用
mysql> select * from test;
+——+————+
| id   | name       |
+——+————+
|    1 | wanzhihua  |
|    2 | shenyanfei |
+——+————+
2 rows in set (0.00 sec)
证明AB互为同步成功。

后继:本文只是安装过程,对自增长,存储引擎,索引等没有详加阐述
,如需要,则需根据自身实际情况在次基础上作些修改。


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
关系型数据库 MySQL OLAP
实时计算 Flink版产品使用合集之可以支持 MySQL 数据源的增量同步到 Hudi 吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
24 4
|
5天前
|
运维 DataWorks 关系型数据库
DataWorks产品使用合集之DataWorks还有就是对于mysql中的表已经存在数据了,第一次全量后面增量同步的步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
38 2
|
5天前
|
DataWorks 关系型数据库 MySQL
DataWorks产品使用合集之在DataWorks中,要实现MySQL数据源的增量同步如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
44 2
|
2天前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版操作报错合集之用CTAS从mysql同步数据到hologres,改了字段长度,报错提示需要全部重新同步如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
43 8
|
3天前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版产品使用合集之2.2.1版本同步mysql数据写入doris2.0 ,同步完了之后增量的数据延迟能达到20分钟甚至一直不写入如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
12 1
|
3天前
|
关系型数据库 MySQL 数据处理
实时计算 Flink版产品使用合集之在同步MySQL的时候卡在某个binlog文件处如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
12 1
实时计算 Flink版产品使用合集之在同步MySQL的时候卡在某个binlog文件处如何解决
|
3天前
|
关系型数据库 MySQL Java
实时计算 Flink版产品使用合集之mysql通过flink cdc同步数据,有没有办法所有表共用一个dump线程
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
8 0
|
5天前
|
传感器 人工智能 前端开发
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
智慧校园电子班牌,坐落于班级的门口,适合于各类型学校的场景应用,班级学校日常内容更新可由班级自行管理,也可由学校统一管理。让我们一起看看,电子班牌有哪些功能呢?
108 4
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
|
5天前
|
SQL DataWorks 关系型数据库
DataWorks操作报错合集之DataWorks在同步mysql时报错Code:[Framework-02],mysql里面有个json类型字段,是什么原因导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
33 0
|
5天前
|
DataWorks 安全 关系型数据库
DataWorks产品使用合集之在 DataWorks 中使用数据集成从 MySQL 导入数据到 GDB 执行同步任务脚本的步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
31 0