mysql主从数据库不同步的解决方法
先检查master库
mysql>show processlist;查看下进程是否sleep太多。发现正常。
mysql>show master status;也正常
再到从slave上查看
mysql>show slave statusG
Slave_SQL_Running:NO;发现是从slave出现问题。
第一种:重新做主从
step1:先进入主库,把表锁起来,防止数据写入
mysql>flush tables with read lock
step2:数据备份
[root@server01 mysql]#mysqldump -uroot -p -hlocalhost > mysql.bak.sql
step3:查看主master状态
mysql>show master status;
step4:把mysql备份文件传到从库及其,进行数据恢复
[root@server01 mysql]#scp mysql.bak.sql root@192.168.5.129:/tmp/
step5:停止从库的状态
mysql>stop slave;
step6:从库执行mysql命令,导入之前的数据备份
mysql>source /tmp/mysql.bak.sql
step7:设置从库同步,该处的同步点就是主库show master status信息里的File|Position两项
change master to master_host = '192.168.5.128, master_user = 'rsync', master_port=3306, master_password=''
, master_log_file = 'aminglinux000001', master_log_pos=6790
step8:重新开启从同步
mysql>stop slave;
问题:从库无法同步
Slave_SQL_Running值为NO,或者Second_Bebind_Master值为Null
原因:1.程序有可能在slave上进行了写操作2可能是slave机器重启后,事务回滚造成的
solution1:
mysql>stop slave;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql > start slave
solution2:
step1:stop slave;
step2:查看主服务器上当前的bin-log日志名和偏移量
step3:获取信息后,到从服务器上执行手动同步,即上一个问题步骤step7