1.3台机器,主机A为主机B和主机C的master,主机A上除了配置以外不做任何操作,使B和C的数据与A同步

服务器A:

编辑配置文件添加如下:

server_id = 1

log-bin=binlog

log-bin-index=binlog.index

重启服务

创建用户:

GRANT replication slave ON *.* TO 'hello'@'%' identified by '123';

flush privileges;

服务器B:

server_id = 2

relay_log = /var/lib/mysql/mysql-relay-bin

relay_log_index=/var/lib/mysql/mysql-relay-bin.index

将/var/lib/mysql下的所有文件及文件夹全部删除,并重启服务

进入mysql输入

change master to master_host='master ip', master_port=3306, master_user='hello', master_password='123', master_log_file='binlog.000003', master_log_pos=4;

start slave;

show slave status \G

查看IO和SQL的状态是否为yes

服务器C

server_id = 3

relay_log = /var/lib/mysql/mysql-relay-bin

relay_log_index=/var/lib/mysql/mysql-relay-bin.index

将/var/lib/mysql下的所有文件及文件夹全部删除,并重启服务

进入mysql输入

change master to master_host='master ip', master_port=3306, master_user='hello', master_password='123', master_log_file='binlog.000003', master_log_pos=4;

start slave;

show slave status \G

查看IO和SQL的状态是否为yes

题目要求服务器A不能锁表及关闭服务,所有有很多种方法来实现,这里只是其中的一种,这种方法测试结果是可行的,原理就是在设置偏移量的时候,设定偏移量为初始的值也就是4的话,那么从就会将偏移量为4以后的所有数据进行复制,如果有更好的方法及建议,请勿喷!