MySQL 复制基于主服务器在二进制日志(binlog)中跟踪所有对数据库的更改(更新、删除等等)。每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以便从服务器可以对其数据拷贝执行相同的更新。
slave服务器如何读取master服务器的binlog?可以通过用户授权的方式,master服务器授予slave账号
一、配置master服务器的/etc/my.cnf文件:
#声明服务器id
server_id=132
#声明二进制日志的文件为mysql-bin.xxx
log-bin=mysql-bin
#二进制日志的格式:statement/row/mixed
#注:statement:二进制记录执行语句,如update,insert,适用于语句不长但影响行数较多的情况;row:二进制记录的是磁盘变化,适用于语句较长且磁盘变化少的情况;mixed:混合模式,由系统决定;
binlog_format=mixed
二、配置slave服务器的/etc/my.cnf文件:
server_id=139
log-bin=mysql-bin
relay-log=mysql-relay
binlog_format=mixed
三、启动主从:
1.查看master服务器状态:show master status;
2.查看slave服务器状态: show slave status;
3.在master授权slave账号:
grant replication client,replication slave on *.* to repli@'192.168.61.%' identified by '123456';
flush privileges;
4.关闭master和slave服务器的防火墙:service iptables stop
5.在slave服务器配置主从复制信息:
change master to
master_host='192.168.61.132',
master_user='repli',
master_password='123456',
master_log_file='mysql-bin.000001',
master_log_pos=352;
6.在slave服务器启动主从复制:start slave;
注:关闭主从复制:stop slave;