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