mysql多主数据同步_Mysql主主同步-配置数据同步

Mysql主主同步数据

一、环境

192.168.1.1  MysqlA

192.168.1.2    MysqlB

二,安装配置

1.安装mysql省略,MysqlA和MysqlB版本保持一致就可以了!

2.配置mysql

1)在两台机器上给对方授权

MysqlA

GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO backmysql@192.168.1.2 IDENTIFIED BY 'ICE02FREE03';

MysqlB

GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO backmysql@192.168.1.1 IDENTIFIED BY 'ICE02FREE03';

flush privileges;

2)配置主配置文件

在MysqlA上

[mysqld]

server-id = 10

log-bin = mysql-bin

log-slave-updates

auto-increment-increment = 2

auto-increment-offset = 1

#要同步的库名

replicate-do-db = test

在MysqlB上

[mysqld]

server-id = 20

log-bin = mysql-bin

log-slave-updates

auto-increment-increment = 2

auto-increment-offset = 2

#要同步的库名

replicate-do-db = test

注:二库都只有server-id不同和auto-increment-offset不同:

auto-increment-offset是用来设定数据库中自动增长的起点的,回为这两能服务器都设定了一次自动增长值2,所以它们的起点必须得不同,这样才能避免两台服务器数据同步时出现主键冲突

replicate-do-db 指定同步的数据库,我们只在两台服务器间同步test数据库

另:auto-increment-increment的值应设为整个结构中服务器的总数,本案例用到两台服务器,所以值设为2

配置完成后,重启两台数据库

service mysqld restart

3)同步两台数据库

首先先在两台数据库上创建要同步的数据库

create database test;

分别在两台数据库中,执行下命令,查看potion,以及binlog。

MysqlA上面执行

mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 |   157485 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

MysqlB上面执行

mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 |    10465 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

##在 MysqlA 上

stop slave;

CHANGE MASTER TO master_host='192.168.1.2', master_user='backmysql', master_password='ICE02FREE03', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=10465;

start slave;

##在 MysqlB 上

stop slave;

CHANGE MASTER TO master_host='192.168.1.1', master_user='backmysql', master_password='ICE02FREE03', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=157485;

start slave;

##分别查看两台数据库的slave状态。

mysql> show slave status\G;

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

##都为yes就ok了

4)验证mysql主主

###好了现在我们来验证吧

在MysqlA的mysqldb数据库中创建表

create table test (name varchar(15) not null,city varchar(15) not null,birth date not null);

在MysqlB的mysqldb数据库中能够查看到该表

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| test           |

+----------------+

1 row in set (0.00 sec)

在MysqlB中向表test插入数据

insert into test values ("lequ","shanghai","2012-10-10");

在MysqlA中查看表test

mysql> select * from test;

+------+----------+------------+

| name | city     | birth      |

+------+----------+------------+

| lequ | shanghai | 2012-10-10 |

+------+----------+------------+

1 row in set (0.00 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CDC(Change Data Capture)是一种数据同步技术,可以实现增量更新数据同步。在MySQL中,可以使用MySQL自带的binlog日志来实现CDC。 binlog日志是MySQL记录数据库操作的日志,包括插入、更新、删除等操作。通过解析binlog日志,可以获取到数据库的增量更新数据,从而实现数据同步。 以下是使用MySQL binlog实现CDC的步骤: 1. 开启binlog日志 在MySQL配置文件中,开启binlog日志。可以通过修改my.cnf文件或在MySQL控制台执行以下语句: ``` set global log_bin=on; ``` 2. 配置binlog格式 MySQL支持三种binlog格式:STATEMENT、ROW和MIXED。为了实现更精确的CDC,建议选择ROW格式。 可以通过修改my.cnf文件或在MySQL控制台执行以下语句: ``` set global binlog_format=row; ``` 3. 配置binlog日志位置 在进行CDC时,需要指定要同步的binlog日志的位置。可以通过执行以下语句查看当前binlog日志的位置: ``` show master status; ``` 输出结果类似于: ``` +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 107 | | | +------------------+----------+--------------+------------------+ ``` 其中File表示当前使用的binlog文件名,Position表示当前binlog的位置。记录下这两个值,后面会用到。 4. 解析binlog日志 使用第三方工具(如Canal)或自行开发程序解析binlog日志,并将解析后的数据同步到目标数据库中。 可以根据需要,对解析后的数据进行过滤、转换等操作,以实现更精细化的数据同步。 总之,使用MySQL binlog日志实现CDC,可以实现增量更新数据同步,是一种常用的数据同步技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值