MySQL数据库主从不一致如何修复

101 阅读1分钟

在实际生产流程中,当从MySQL备库查询数据时出现查无数据的情况,而主数据库中却存在对应数据。经过检查数据库的配置文件(/etc/my.cnf),我们发现主从同步设置为了跳过所有复制错误的模式(即slave_skip_errors = all)。为确保从库数据与主库保持一致,针对这一情况,我们决定采取冷备份的方式来重新同步从数据库的数据。

具体操作如下:

注:mysql_data指的是MySQL的数据目录(datadir

1.master停库,slave停库 service mysqld stop

2.slave移走mysql_data:

mv mysql_data mysql_data_slaveerror

3.将master的mysql_data拷贝到slave

scp -r mysql_data root@192.168.5.28:/data/

拷贝成功后在salve库服务器:

修改目录权限:chown -R mysql:mysql mysql_data

进入mysql_data移走auto.cnf:mv auto.cnf auto.cnf_1

注:auto.cnf: 存储MySQL实例的全局唯一标识符(UUID)。这个值在MySQL启动时被读取,并保存在服务器内部变量server_uuid中。当MySQL实例首次启动时,如果auto.cnf不存在或者其中没有有效的UUID,MySQL将自动生成一个新的UUID并写入到这个文件。

4.主库从库都起库 service mysqld start、

5.进入从库重搭slave

stop slave;

reset slave; 查看rpl用户的密码:select user,host,authentication_string from mysql.user;

change master to master_host='172.256.0.1',master_user='rpl',master_password='123',master_port=3306,master_auto_position=1; start slave; show slave status\G;