MySQL主从没有同步有二种解决方案

方法一:忽略错误,继续同步

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

   mysql> stop slave;   #关闭从库

   mysql> set global sql_slave_skip_counter =1;    #表示跳过一步错误,后面的数字可变

   mysql> start slave;    #开启从库



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

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

热备方式修复主从库

操作过程

1、先关闭从数据库

2、记录主库的log_file文件名和位置点

3、导出主库的数据库,拷贝到从库机器上

4、从库删除以前的老库,导进从主库拷贝过来的新库

5、changes主库的Log_file和位置点

6、开启从库


提示:主从库密码一致,请按照从上往下的步骤一步一步操作


主库机:192.168.1.1

从库机:192.168.1.2


从库操作

1、关闭从库同步

   mysql> stop slave;


主库操作

1、记录主库的log_file文件名和位置点

   mysql> show master status;

   +-------------------+----------+--------------+-------------------------------+

   | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

   +-------------------+----------+--------------+-------------------------------+

   | mysqld-bin.000001 | 3260     | | mysql,test,information_schema |

   +-------------------+----------+--------------+-------------------------------+


2、导出主库的数据库,拷贝到从库机器上,从库删除以前的老库,导进从主库拷贝过来的新库

   # mysqldump -uroot -p123456 -hlocalhost -B -C mysqldb --single-transaction > /opt/mysqldb .sql &


3、主库机器拷贝数据库到从库机器上

   # scp /opt/mysqldb .sql root@192.168.1.2:/opt/


从库操作

  1、删除旧库 

  mysql> drop database mysqldb;

  

  2、change master的日志文件名和日志点

  # mysqldump -uroot -p123456 mysqldb < /opt/mysqldb .sql &

  mysql> change master to 

  master_host='192.168.1.1',

  master_user='root',

  master_port='3306',

  master_password='123456', 

  master_log_file='mysqld-bin.000001',

  master_log_pos=3260;

  

  3、开启从库

  mysql> start slave;

 

  同步完成


【导库注意事项】

1、数据量大的时候要放后台进行导库

2、关闭binlog重启再导库

3、使用多线程备份恢复


MySQL多线程备份恢复参考博客

http://blog.uinion.com/?p=471


http://blog.uinion.com/?p=465


技术交流

QQ:1934844044