mysql的主从复制

一.主从复制简介

二.主从复制原理

四.主从复制基本故障处理

五.延时从库

六.半同步复制

七.过滤复制

四、主从复制基本故障处理

SQL 线程为NO

  一般情况下,因为主库一开始本来就有一些存在的库,在已经有这些库的情况下,开启了binlog,这时候mysql-bin.00001,位置点是120. 老早存在的那些库的信息不会在开启的这个binlog里。

  但是这时候在老在存在的库,进行SQL语句操作,这个时候位置点变成了340.

  这时候从库做主从复制的时候,从库是一个新库只有一些基本的系统库没有老早就存在的那些库。这时候change master 从mysql-bin.00001,位置点120开始的话就会报错。

  因为从库本身没有老早存在的库,还执行对老早存在的库的SQL语句。

  如果不想报错,从库就从位置点340开始。就不会把要执行的那些SQL语句记录进去了。

  所以要保证两库的数据一致,然后才做主从复制。

  解决:

    在主库做全贝操作: 

     mysqldump -uroot -p1 -A --master-data=2 > /tmp/full.sql

       scp /tmp/full.sql 172.16.1.7

    在从库需要导入数据:

      但前提是先把主从复制停掉:

      stop slave;

      然后导入数据:

      source /tmp/full.sal

全贝的效果就是主库里所有的表都备份了,而且不管些什么都会同步过来。

    这时候看一下 /tmp/full.sql   找到里面的位置点   重置从表。

    vim /tmp/full.sql

    位置点

    reset slave

    重置的内容

    开启从库

    

  

原文地址:https://www.cnblogs.com/zhangrenguo/p/10725123.html