# mysqlmysql/1021.html">主从复制逻辑:
1
.从库执行start slave 开启主从复制。
2
.从库请求连接到主库,并且指定binlog文件以及位置后发出请求。
3
.主库收到从库请求后,将信息返回给从库,除了信息日志外,还包含新的文件名称以及下一个更新节点。
4
.从库接收到主库发送的信息后,会将信息更新至自身的relay log中,并且将新的文件名记录到master-info中。
5
.从库SQL线程会检测本地relay-log,如有变化,会将信息解析为SQL可执行语句并且执行该语句,同时在relay-log.info中记录当前文件名以及位置点。
mysql 主从复制操作方法:
# 主库:
1.保证bin-log的开启(可在mysql中利用 show variables where variable_name like 'bin%' 中查看,
其中栏位值为ON则为开启,OFF则为关闭 bin-log具体逻辑取决于my.cnf设定值中的bin-log)
2.新建用户并且设定其为replication slave账户(grant replication slave on db_name.tb_name to 'user_name'@'host_name' identified by 'password'
;)
3.对主库锁表只读(flush table with read lock
;)
4.收集master的信息,包括(replication slave username and password ,
master status filename and master status position(get master status: show master status ) )
5.导出主库数据,解锁(unlock tables
;)
# 从库:
1
.将主库数据导入从库
2.将从库连接主库(change master to master_host='host_name',master_port='master_port',master_user='master_user',paster_password='master_password',master_log_file='master_status_log_file',master_log_pos='master_status_log_position')
;
3.开启主从复制,start slave
; 查看从库状态是否OK(show slave status\G;)如果确定状态为NO时,则需要重新启动master和slave,再次检查状态是否OK