参考: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 root@133.813.933.184:/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?
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;"