MySQL主从同步数据不一致解决办法

1. 主库操作

1.1 锁表

使用命令:

mysql> flush tables with read lock; 

意思是锁定为只读状态。

1.2 备份

mysqldump -uroot -p --all-databases > /temp/mysql.back.sql

备份所有数据库到mysql.back.sql文件
mysqldump命令详细使用->传送门

1.3查看master状态

mysql> show master status;

1.4传送备份文件到从库

scp mysql.back.sql [email protected]:/tmp/ 

2.从库操作

2.1停止从库同步主库操作

mysql> stop slave; 

2.2导入备份文件到从库

mysql> source /tmp/mysql.back.sql 

2.3设置从库同步主库的位置

change master to master_host = '主库的地址', master_user = '用户名', master_port=3306, master_password='密码', master_log_file = 'mysqld-bin.xxxxx', master_log_pos=xxxx; 

master_log_file和 master_log_pos分别对应于主库show master status信息里的File 和 Position两项 。

2.4开启从库同步主库操作

mysql> start slave; 

2.5查看从库同步状态

Slave_IO_Running: Yes 
Slave_SQL_Running: Yes 

如果上面两项都为Yes,表示从库同步主库的操作是正常的,如果不是,请注意查看下图的红框位置的错误日志信息。


3. 收尾

mysql> unlock tables;

在主库执行上面的语句进行解锁操作(1.1 锁表)

你可能感兴趣的:(MySQL主从同步数据不一致解决办法)