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以后的所有数据进行复制,如果有更好的方法及建议,请勿喷!