主从过程:
master开启io线程,slave开启io线程和sql线程。
1.slave库执行slave start命令,slave库通过授权用户链接master,并请求master库发送bin-log日志。(position后的日志)
2.master接受请求后,通过自身io线程,把bin-log日志内容和更新后的position,返回给slave的IO线程。
3.slave的IO接受到信息后,将接受内容依次加入到relay-log文件最末端,并将master的bin-log文件名和position记入master-info文件种。
4.slave的sql线程检测到relay-log更新后,会提取可执行,并在自身执行。
配置过程:
master /etc/my.cnf加入
[mysqld]
log-bin=mysql-bin
server-id = 1
auto_increment_offset=1
auto_increment_increment=2
[mysqld_safe]
replicate-do-db = discuz
slave /etc/my.cnf加入
[mysqld]
server-id = 2
auto_increment_offset=2
auto_increment_increment=2
master授权
grant replication slave on *.* to tongbu@192.168.188.35 identified by '000000';
slave机执行如下语句
change master to master_host='192.168.188.33',master_user='tongbu',master_password='000000',master_log_file='mysql-bin.000009',master_log_pos=393;
slave start;
重启mysq服务;
show slave statusG
如下两行都为yes,主从同步成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes