binlog是一个二进制文件,记录所有的增删改操作,节点之间的复制会依靠binlog来完成。
执行流程:
master执行完增删改操作后,都会记录binlog日志,当需要同步的时候,会通知salve节点,slave收到通知后使用IO THREAD主动去master读取binlog日志写入relay日志(中转日志),然后使SQL THREAD完成对relay日志的解析然后入库操作,完成同步。
vi /etc/my.cnf
[msyqld]
# 启用二进制日志
log-bin=mysqld-bin
server-id=1
重启MySQL
show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| mysqld-bin.000001 | 943 | | | |
+-------------------+----------+--------------+------------------+-------------------+
从服务器 需要设置 file 和 position
vi /etc/my.cnf
[msyqld]
# 启用二进制日志
log-bin=mysqld-bin
server-id=2 # 不能重复
重启MySQL
change master to master_host='idc.cubepaas.com',master_port=51340,master_user='root',master_password='123456',master_log_file='mysqld-bin.000001',master_log_pos=1534;
开启slave
start slave
停止 slave
stop slave
查看从服务器的同步状态
show slave status