实现两个mysql数据库同步

来源:互联网 发布:淘宝怎么修改价格 编辑:程序博客网 时间:2024/05/22 10:31

master.info 记录了slave连接master进行数据同步的参数,relay-log.info记录了slave进行数据更新使用的中续日志的的信息。

操作系统:window XP

mysql版本:5.5

A:192.168.1.121

B:192.168.1.123

一、配置A(master)机、B(slave)机,实现B复制A

1、A主机创建一个用户create user pxx identified by '1'

2、为用户pxx赋予权限

grant replication slave on *.* to pxx@'%' identified by '1'

grant super on *.* to pxx@'%' identified by '1'

3、创建用于同步的数据库

create database test

4、创建用于同步的表

create table tab1(

id int not null,

name varchar(20),

age int,

primary key(id)

)

5、修改A的配置文件my.ini

在最后添加以下代码:

log-bin = master_bin
log-bin-index = master-bin.index
binlog-do-db=test
server-id=1


6、创建用于同步的数据库

create database test

7、创建用于同步的表

create table tab1(

id int not null,

name varchar(20),

age int,

primary key(id)

)

8、修改B的配置文件my.ini

在文件最后添加以下代码:

replicate-wild-do-table=test.tab1
server-id=2
relay-log-index=slave-replay-bin.index
relay-log = slave-replay-bin

9、重启服务。在A机器上show master status

查看FILE 和 POSITION

在B机器上输入以下代码:

change master to
master_host='192.168.1.121',//Master服务器地址
master_user='pxx',//Slave服务器更新时连接Master使用的用户名
master_port=3306,
master_password='1',// Slave服务器更新时连接Master使用的密码
MASTER_LOG_FILE=’FILE‘,//更新操作日志
MASTER_LOG_POS=POSITION;//同步数据的开始位置

上面命令执行完毕后,执行START SLAVE; 命令启动数据更新。在Slave 数据库上执行:

SHOW SLAVE STATUS; 查看从数据跟主数据库的连接状态是否正常,如果显示的信息中

的 Slave-IO-Running 和 Slave_SQL_Running 值为 yes,表示用于数据同步的 io线程和sql操作线程已经成功启动。

 

以上步骤完成后,就实现了B复制A。

 

实现A复制B

即在A机器的my.ini添加以下代码:

replicate-wild-do-table=test.tab1

relay-log-index=slave-replay-bin.index
relay-log = slave-replay-bin

在B机器的my.ini添加以下代码:

binlog-do-db = test

log-bin = master_bin
log-bin-index = master-bin.index

重启服务,执行上述步骤9