mysql主从不一致解决方法

 

方法一:忽略错误,同步

 

该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况

 

解决: 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

stop slave;

 

#表示跳过一步错误,后面的数字可变

 

setglobalsql_slave_skip_counter =1;

 

start slave;

 

之后再用mysql> show slave status\G  查看:

 

Slave_IO_Running: Yes

 

Slave_SQL_Running: Yes

 

 

ok,现在主从同步状态正常了。。。

 

 

方式二:重新做主从,完全同步

 

该方法适用于主从库数据相差较大,或者要求数据完全统一的情况

 

--主机开两个窗口,一个进入mysql,一个是shell--主机阻断写操作mysql> FLUSH TABLES WITH READ LOCK;Query OK, 0 rows affected (0.00 sec)mysql> mysql> mysql> SHOW MASTER STATUS;+------------------+----------+--------------+------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000002 |  1529881 | openser      | mysql,test       |+------------------+----------+--------------+------------------+1 row in set (0.00 sec)--另外一个窗口导出主机数据库mysqldump -u root -p123456 --opt -R openser > openser20121203.sql--刚才的窗口主机解锁mysql> UNLOCK TABLES;Query OK, 0 rows affected (0.00 sec)mysql>--打包数据文件到从机drop database openser;create database openser;mysql -u root -p123456 openser < openser20121127.sql--从机操作SLAVE STOP;reset slave;CHANGE MASTER TO MASTER_HOST='192.168.21.26',MASTER_USER='repl_user',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=1529881;start slave;show slave status\G