mysql主主配置

Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。

(1)首先确保主从服务器上的Mysql版本相同,我使用的是mysql5.6.14版本

一、MYSQL安装

http://blog.csdn.net/u010969226/article/details/44152755


二、场景描述:
服务器A:192.168.10.1,MySQL已经安装,并且无应用数据。
服务器B:192.168.10.2,MySQL已经安装,并且无应用数据。


三、服务器A

1、创建同步帐号

mysql> GRANT REPLICATION SLAVE ON *.* TO 'mysync'@'192.168.10.2' IDENTIFIED BY '123456';

mysql> flush privileges;

2、开启归档日志

修改主数据库的配置文件my.cnf,开启BINLOG,并设置server-id的值,修改之后必须重启Mysql服务


[mysqld]

log-bin = mysql-bin

server-id=1


binlog-do-db=test                        #指定数据库生成binlog日志,默认所有
replicate-do-db=test                   #复制的数据库,默认所有
binlog-ignore-db=mysql            #不对mysql库进行日志记录操作,默认所有
replicate-ignore-db=mysql       #不复制的数据库,默认所有
relay-log=mysql-relay-bin         
relay-log-index=mysql-relay-bin


3、获取主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复


mysql> show master status\G;

*************************** 1. row ***************************

File: mysql-bin.000001

Position: 143

Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00 sec)


4、设置服务器B信息

mysql>change master to
master_host='192.168.10.2',
master_user='mysync',
master_password='123456',
master_log_file='mysql-bin.000001',
master_log_pos=243;


5、启动slave进程


mysql> start slave;



四、服务器B

1、创建同步帐号

mysql> GRANT REPLICATION SLAVE ON *.* TO 'mysync'@'192.168.10.1' IDENTIFIED BY '123456';

mysql> flush privileges;

2、开启归档日志

修改主数据库的配置文件my.cnf,开启BINLOG,并设置server-id的值,修改之后必须重启Mysql服务


[mysqld]

log-bin = mysql-bin

server-id=2


binlog-do-db=test                        #指定数据库生成binlog日志,默认所有
replicate-do-db=test                   #复制的数据库,默认所有
binlog-ignore-db=mysql            #不对mysql库进行日志记录操作,默认所有
replicate-ignore-db=mysql       #不复制的数据库,默认所有
relay-log=mysql-relay-bin         
relay-log-index=mysql-relay-bin



3、获取主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复


mysql> show master status\G;

*************************** 1. row ***************************

File: mysql-bin.000001

Position: 243

Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00 sec)


4、设置服务器A信息

mysql>change master to
master_host='192.168.10.1',
master_user='mysync',
master_password='123456',
master_log_file='mysql-bin.000001',
master_log_pos=143;


5、启动slave进程


mysql> start slave;


五、测试主主数据库配置

1、查看服务器A

mysql> SHOW SLAVE STATUS\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: localhost

Master_User: root

Master_Port: 3306

Connect_Retry: 3

Master_Log_File: mysql-bin.003

Read_Master_Log_Pos: 79

Relay_Log_File: gbichot-relay-bin.003

Relay_Log_Pos: 548

Relay_Master_Log_File: mysql-bin .003

Slave_IO_Running: Yes

Slave_SQL_Running: Yes 

2、查看服务器B

mysql> SHOW SLAVE STATUS\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: localhost

Master_User: root

Master_Port: 3306

Connect_Retry: 3

Master_Log_File: mysql-bin.003

Read_Master_Log_Pos: 79

Relay_Log_File: gbichot-relay-bin.003

Relay_Log_Pos: 548

Relay_Master_Log_File: mysql-bin .003

Slave_IO_Running: Yes

Slave_SQL_Running: Yes 

只检查服务器A、服务器B里的 Slave_IO_Running、Slave_SQL_Running是否为Yes,不是的话,请查看hostname.err错误日志。

到此,主主数据库已经配置好了。


在数据操作的ddl及dml操作,都会同步到另外一个数据库,并且不会循环。

答:slave 端从master端binlog中读取到的日志存放在自己的relay-log文件中,然后转化成可以执行的sql语句进行执行,这样就不存在无限循环的问题。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值