Mysql的实时同步 - 双机互备.

设置方法:

步一设

A 服务服 (192.168.1.43) 上用户为 backup, 123456 , 同步的数据库为test;

B 服务服 (192.168.1.23) 上用户为 root, 123456, 同步的数据库为test;

 

步二配置 mysql.ini:

A服务器

 

#Replication master

server-id = 10

log-bin="E:\MySQL\logs\mysql_binary_log"//必须先创建这个文件

binlog-do-db=test

 

# Replication slave

master-host="192.168.1.23"

master-user=root

master-password="123456"

master-port=3306

master-connect-retry=60

replicate-do-db=test

 

B服务器

 

#Replication master

server-id = 2

log-bin="c:\mysql5\logs\mysql_binary_log"

binlog-do-db=test

 

# Replication slave

master-host="192.168.1.43"

master-user=backup

master-password=123456

master-port=3306

master-connect-retry=60

replicate-do-db=test

 

=============================================================

解释:

 

3)binlog-do-db=test 表示需要备份的数据库是test这个数据库,

如果需要备份多个数据库,那么应该写多行,如下所示:

binlog-do-db=backup1

binlog-do-db=backup2

binlog-do-db=backup3

 

 

解释:

1) server-id=2表示本机器的序号, A,Bserver-id 不能相同;

2)log-bin表示打开binlog,打开该选项才可以通过I/O写到Slaverelay-log,也是可以进行replication的前提;

其中mysql_binary_log是日志文件的名称,mysql将建立不同扩展名,文件名为mysql_binary_log的几个日志文件.

3) master-host="192.168.1.23" 表示Aslave时的master192.168.1.23;

4) master-user=root 这里表示master上开放的一个有权限的用户,使其可以从slave连接到master并进行复制;

5) master-password=123456 表示授权用户的密码;

6) master-port=3306 masterMySQL服务Listen3306端口;

7) master-connect-retry=60 同步间隔时间;

8) replicate-do-db=test 表示同步backup数据库;

 

 

最后重新启动两台机器的mysql.

------------------------------------------------

查看状态及调试

 

1,查看master的状态

SHOW MASTER STATUS;

Position 不应为0

2,查看slave的状态

show slave status;

Slave_IO_Running | Slave_SQL_Running 这两个字段应为 YES|YES.

show processlist;

会有两条记录与同步有关 state Has read all relay log; waiting for the slave I/O thread to update it

s Waiting for master to send event .

3,错误日志

MySQL安装目录\data\Hostname.err

 

4,CHANGE MASTER TO

如果A Slave 未启动 ,Slave_IO_Running No.

可能会是Bmaster 的信息有变化,

查看B SHOW MASTER STATUS;

记录下 File,Position 字段. 假设为'mysql_binary_log.000004',98 ;

A 下执行:

Stop Slave;

CHANGE MASTER TO

MASTER_LOG_FILE = 'mysql_binary_log.000004',

MASTER_LOG_POS = 98 ;

 

Start Slave;

 

5,SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n;

如果ASlave_SQL_Running No.

Err文件中记录:

Slave: Error 'Duplicate entry '1' for key 1' on query....

可能是master 未向slave 同步成功,slave中已经有了记录。造成的冲突.

可以在A上执行

SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n;

跳过几步。再

restart salve;

就可以了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值