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;"

猜你喜欢

转载自www.cnblogs.com/shujutongbu/p/11020054.html