首页 > 代码库 > mysql配置主从复制
mysql配置主从复制
主从复制 一、主从复制的工作原理 Mysql在Master与slave之间实现整个复制的过程由3个线程来完成的,其中两个线程(SQL线程和IO线程)在 Slave端,另外一个线程(IO)在Master端 要实现Mysql的复制必须首先打开Master端的binary log(也就是二进制日志)否则无法实现. Mysql复制基本过程如下: (1)Slave上面的IO 线程链接上Master,并且请求指定日志文件的位置(或者 从开始的日志之后的日志内容) (2)Master接收到来自Slave的IO线程请求后,通过负责复制的IO线程根据这个请求信息指定日志的位置后,把这个信息返回给Slave的IO线程(返回的信心当中除了日志所包含的信息外,还包括了Master端的二进制文件名称和 二进文件的位置) (3)Slave的IO线程接收到Master端的返回信息之后,将日志内容一次写入slave端的Relay log文件,(mysql-relay-bin.xxx)当中,并且读取到Master端的bin-log文件和位置记录, 记录到master-info文件当中,以便下一次能够清楚的告诉Master我需要从某个bin-log的哪个位置开始往后的内容,请发给我。 (4)、Slave的SQL线程检测Relay log中心增加了内容后,马上解析Master二进制文件中的内容,并且执行里面的Query语句. 二、主从的环境 Master IP:10.0.0.201 Slave IP:10.0.0.202 (1)在Master上操作 操作文件为:/etc/my.cnf 首先将log-bin日志打开 其次将server-id设置为1 将log-slave-updates给关闭掉 service mysqld restart 建立一个内部复制通信用户 grant replication slave on *.* to ‘admin‘@‘10.0.0.202‘ identified by ‘123456‘; flush privileges; (2)在Slave上操作 操作文件为:/etc/my.cnf 首先将bin-log日志打开 其次将server-id设置为2 将log-slave-updates打开 #POS号以及日志文件名称在master端 >show master status\G; 查看 service mysqld restart >stop slave; >change master to master_host=‘10.0.0.201‘, master_user=‘admin‘, master_password=‘123456‘, master_log_file=‘mysql-bin.000005‘, master_log_pos=578; >start slave; >show slave status\G; 当master跟slave挂掉之后,slave丢失了一部分数据: 如果要恢复这段丢失的数据,slave端已经停止了slave,change当中的POS号和bin-log就填slave端当前的内容。才能恢复 如果填写master的POS号和bin-log内容则不恢复。(原因:主要根据POS号查看跟MASTER端的日志是否在最新位置)。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。