Chinaunix首页 | 论坛 | 博客
  • 博客访问: 70424
  • 博文数量: 8
  • 博客积分: 382
  • 博客等级: 一等列兵
  • 技术积分: 82
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-21 20:58
文章分类

全部博文(8)

文章存档

2013年(1)

2012年(1)

2011年(6)

分类: Mysql/postgreSQL

2011-10-17 10:06:13

MYSQL主从同步时出现”Client requested master to start replication from impossible position”错误的解决方法:
这个错误是因为从服务器请求一个错误的位置而引起的.比如主服务器上的BLIN LOG里没有这个POSITION.
解决原理:
从相关的BIN LOG 里最后一个日志位置,与从服务器上的日志对比,如果LOG里最后位置比错误的位置大,那么,说明中间可能有断点,需要把从服务器的位置向前调,多试几次.
如果在LOG里最后的位置比从服务器指出的位置还小,那么只要把从服务器的位置设置成下一个LOG的最后位置就可以了.

mysqlbinlog mysql-log-bin.000112 >log.sql
tail -f log.sql
# at 568380594
#110616  3:10:16 server id 1  end_log_pos 568380757     Query   thread_id=123899        exec_time=0     error_code=0
use thecheap_topshoppinguscom/*!*/;
SET TIMESTAMP=1308226216/*!*/;
DELETE FROM `thecheap_topshoppinguscom`.`zm_sessions` WHERE expiry < 1308224416
/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

发现这个位置比从服务器上的位置(568397810)还小,只要设置成下一个LOG:mysql-log-bin.000113的开始位置,然后启动SLAVE就可以了.
CHANGE MASTER TO
MASTER_LOG_FILE=’mysql-log-bin.000113′,
MASTER_LOG_POS=4;

阅读(2740) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~