MySQL中的主从复制
条件
- 主库开启binlog日志(设置log-bin参数)
- 主从server-id不同(这个要小心)
- 从库服务器能连通主库
原理
- 从库生成两个线程,一个
I/O线程
,一个SQL线程
; I/O线程
去请求主库的binlog
,并将得到的binlog日志写到relay log(中继日志)
文件中;- 主库会生成一个
log dump 线程
,用来给从库I/O线程
传binlog; SQL 线程
,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致
步骤
-
修改主从服务配置文件,server-id不同;
-
配置完成后,保存并重启主MySQL数据库;
-
在主服务器上建立帐户并授权slave服务器,
GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';
-
登录主服务器的mysql,查询master的状态,
show master status;
-
配置从服务器Slave
change master to master_host='192.168.33.110', master_user='slave', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=315; start slave; # 启动从服务器复制功能
-
检查从服务器复制功能状态
show slave status \G