mysql数据库主从不同步解决办法

参考:http://blog.51cto.com/13407306/2067333

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

1.先进入主库,进行锁表,防止数据写入 (完事后记得解锁 unlock tables )
使用命令: 
mysql -uroot -proot_neu -P33061 -S /tmp/mysql_33061.sock
mysql> flush tables with read lock; 

注意:该处是锁定为只读状态,语句不区分大小写 

2.进行数据备份 
#把数据备份到mysql.bak.sql文件 

[root@server01 mysql]# mysqldump -uroot -P33061 -S /tmp/mysql_33061.sock -proot --all-databases --default-character-set=utf8 > mysql.bak.sql 

3.把mysql备份文件传到从库机器,进行数据恢复 
#使用scp命令 
[root@server01 mysql]# scp mysql*.sql [email protected]:/root/ 

4.停止从库的状态 (reset master; reset slave; 一定是从库上执行,别整错了)

mysql -uroot -proot_neu -P33062 -S /tmp/mysql_33062.sock
mysql> stop slave; 
mysql> reset master; 
mysql> reset slave;

5.然后到从库执行mysql命令,导入数据备份 

mysql> /root/source mysql.bak.sql 

6.查看主库 master 状态 

mysql> show master status\G; 

*************************** 1. row ***************************
             File: mysql-bin.000010

             Position: 157229134

7.设置从库同步,注意该处的同步点,就是第6步,主库show master status\G 信息里的| File| Position两项 

change master to master_host='133.813.933.183',master_port=33061,master_user='repl',master_password='*****' ,master_log_file='mysql-bin.000010', master_log_pos=157229134 FOR CHANNEL 'M1';

8.重新开启从库同步 

mysql> start slave; 

9.查看同步状态 
mysql> show slave status\G 查看: 

Slave_IO_Running: Yes 
Slave_SQL_Running: Yes 

10.测试主从同步
mysql -uroot -proot_neu -P33061  -S /tmp/mysql_33061.sock -e "CREATE DATABASE mydb; CREATE TABLE mydb.mytab(id INT AUTO_INCREMENT, port INT, PRIMARY KEY(id));"

mysql -uroot -proot_neu -P33061 -S /tmp/mysql_33061.sock  -e "DESC mydb.mytab;"
mysql -uroot -proot_neu -P33062 -S /tmp/mysql_33062.sock  -e "DESC mydb.mytab;"

你可能感兴趣的:(服务器搭建)