环境:
centos6.4
mysql5.1
主:mysql1
从:mysql2
在mysql1上:
1.1.先锁表,避免在重新设置同步的这段时间内有新的数据写入。
flush tables with read lock;
1.2.备份数据库
mysqldump -u root -p data1 > data1.sql
1.3. 把备份的数据库传到mysql2上去
1.4.删除原来的日志文件
cd /var/lib/mysql
mv master-bin-0000* /backup //移动别处
vim master-bin-index //删除里面的内容
1.5.重启mysql服务后,再锁表
service mysqld restart
flush tables with read lock;
show master status; //得到的信息在从服务器上配置同步
2. 在mysql2上:
2.1. 导入数据库data1.sql
mysql -u root -p data1 < data1.sql //此处,data1数据库需存在的
2.2. 删除原来的日志文件
cd /var/lib/mysql
mv master-bin-0000* /backup //移动别处
vim master-bin-index //删除里面的内容
2.3.设置重新同步
2.3.1.停止从库
mysql> slave stop;
2.3.2.连接主库
mysql>change master to master_host=‘192.168.1.1‘, master_user=‘slaveuser‘, master_password=‘redhat‘, master_log_file=‘mysql-bin.000001‘,master_log_pos=352;
//如果2.3.2执行成功,执行2.3.4,否则,先执行2.3.3,再执行2.3.4
2.3.3.重置从库
mysql> reset slave;
2.3.4.启动从库
mysql> slave start;
2.3.4.查看同步状态
mysql> show slave status\G;
//如果没有报错,说明重新同步成功