Mysql主从复制分三个步骤:
1、master将改变记录的二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events。
2、slave 将master的binary log events拷贝到它的中继日志(relay log)。
3、salve 重做中继日志中的事件,将改变应用到自己的数据库中,Mysql复制是异步且串行化的。
基本原则:
1、每个slave只有一个master
2、每个slave只能有一个唯一的服务器ID
3、每个master可以有多个slave
常见配置:
1、mysql版本要一致且后台以服务运行
2、主从配置都在[mysqld]节点下,都是小写
1)主机
服务器id:
server-id = 1(必须)
开启二进制日志:
log-bin=自己本地路径/mysqlbin(就放在data下即可,必须)
log-err=自己本地路径/mysqlerr(就放在data下即可,可选)
basedir=.....
tmpdir=....
datadir=......
read-only=0(读写都可以)
binlog-ignore-db=mysql(不需要复制的数据库)
2)从机:
server-id (必须)
二进制日志,非必须(建议打开)
3)关闭防火墙
4)master上建立账户并授权slave
GRANT REPLICATION SLAVE ON *.* TO 'zhangsan' @' 从机ip' IDENTIFIED BY '123456';(密码)
flush privileges;(刷新)
show master status; (查询master状态)
记住FILE POSITION字段
暂时对master不进行任何操作
5)从机配置需要复制的主机
CHANGE MASTER TO MASTER_HOST='主机ip',MASTER_USER='用户名',MASTER_PASSWORD='密码',
MASTER_LOG_FILE='file名称',MASTER_LOG_POS='position数字';
start slave;
show slave status\G;
查看到
Slave_IO_Runing:Yes
Slave_SQL_Runing:yes
同时为yes才可以。
如何停止从机?
stop slave