MySQL主从复制原理
- master节点将数据的更改记录到二进制日志binarylog中,称为:binary log events 二进制日志事件
- slave将master的binarylog events拷贝到它的中继日志relaylog
- slave节点更加relaylog,进行数据的重演,SQL thead处理
注意事项:
- master和slave 数据的版本要一致
- master和slave 数据库数据一致
- master 开启二进制日志
# 开启主从复制,主库配置
log-bin = mysql-bin
# 指定主库serverid
server-id = 1
# 指定同步数据库,不指定的话,会同步全部数据库
binlog-do-db=mytest
# 执行SQL语句查询状态
SHOW MASTER STATUS
# 授权用户slave01使用123456 面登录mysql
grant replication slave on *.* to `slave01`@`127.0.0.1` identified by `123456`; && flush privileges;
# 从库的配置
# 指定server_id 只需要这个配置项
server-id = 2
# 其他操作需要在命令行完成
# 执行语句一:
CHANGE MASTER TO
master_host='127.0.01'
master_user='slave01'
master_password='123456'
master_port=3306
master_log_file='mysql-bvin.000006'
master_log_pos=1120;
# 启动slave同步
START SLAVE;
# 查看同步状态
SHOW SALVE STATUS;
### percona
主从复制模式:
1. RBR
基于行的复制row-based-热评理财通RBR
2. SBR
基于SQL语句的复制 statement-based replication SBR
3. MIXED
混合模式复制,mixed-based replication MBR
对应binglog_format的格式为:ROW, STATEMENT MIXED
MIXED: 可以根据不同的操作,采用不同的模式,固有有优势
修改配置文件:添加binlog_format=MIXED