MySql主从同步问题解决


先查看从服务器的状态

1 mysql>SHOW SLAVE STATUS;

如果发现以下两个字段

1 Slave_IO_Running: No
2 Slave_SQL_Running: NO

其中有一个为No,则同步出错,需要恢复。出错信息可以参考Last_Error字段。

一般情况下,在从服务器上执行

1 mysql>stop slave;
2 mysql>start slave;

即可恢复。

如果运行这个之后,依然不能恢复,则可尝试以下方法。

先锁定表,在主服务器上执行

1 mysql>FLUSH TABLES WITH READ LOCK;
2 mysql>SHOW MASTER STATUS;

第一句锁定表,第二句显示主服务器的状态,记下

1 File:
2 Position:

这两个字段的值,再把需要同步的数据库的目录,在主服务器上操作,复制到从服务器

1 scp -r db_1 db_2 root@192.168.1.200:/var/lib/mysql/

这里,把db_1,db_2两个数据库目录,复制到从服务器的MySql数据目录下,复制后,注意权限问题。

完成复制之后,在主服务器上操作,解锁表

1 UNLOCK TABLES;

在从服务器上操作

1 STOP SLAVE;
2 
3 CHANGE MASTER TO
4 MASTER_LOG_FILE='mysql-bin.000098',
5 MASTER_LOG_POS=22926865;
6 
7 START SLAVE;
8 
9 SHOW SLAVE STATUS;

这里,LOG_FILE与LOG_POS分别对应之前在主服务器上查询出来的File与Position字段。

完成。

其中的CHANGE MASTER TO语句,通常还有以下值,按需选择设置

1 CHANGE MASTER TO
2 MASTER_HOST='192.168.1.199', 
3 MASTER_USER='repl', 
4 MASTER_PASSWORD='repl', 
5 MASTER_PORT=3306 
6 MASTER_LOG_FILE='MYSQL-BIN.000098', 
7 MASTER_LOG_POS=22926865, 
8 MASTER_CONNECT_RETRY=30; 

 

 

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM