参考: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;"