为什么MySQL数据库的主从服务器之间的数据会有差距呢?原因是由于主服务器比较繁忙,主服务器与从服务器的硬件相差比较大等原因可能造成主服务器与从服务器数据差距比较大。为了不影响MySQL数据库的应用,我们常常手动地定期进行主从服务器的数据同步,下面是手动进行数据同步的步骤。该过程是在数据库负载比较低时执行的,此时主服务器不能更新。
1、对主服务器执行:
- mysql> flush tables with read lock; 用读锁锁住所有的表阻止对它的更新
- mysql> show master status\G
- *************************** 1. row ***************************
- File: binlog.000022
- Position: 592429
- Binlog_Do_DB:
- Binlog_Ignore_DB:
记录下FILE后面的值及Postion后面的值也就是日志名字及其偏移量。
2、在从服务器上执行下面的语句:
- mysql> select MASTER_POS_WAIT('binlog.000022','592429')\G
- *************************** 1. row ***************************
- MASTER_POS_WAIT('binlog.000022','592429'): 0
MASTER_POS_WAIT的第一个参数是上面master的File值,第二个参数是上面master 的Position值。
如果返回值是0代表同步是成功的,如果为-1代表是超时退出。
3、对主服务器的操作:
- mysql> unlock tables;
按照以上的步骤执行完毕,就能够解决MySQL数据库主从服务器之间的差距问题了。
【编辑推荐】