MySQL主从复制中出现的error和解决办法 |
发布时间: 2012/9/6 18:07:11 |
slave日志中的错误代码1: [ERROR] Error reading packet from server: Client requested master to start replication from impossible position; the last event was read from 'mysql-bin.000016' at 455562731, the last byte read was read from 'mysql-bin.000016' at 4. ( server_errno=1236) 先查看主服务器中对应日志文件是否有此行,使用的命令是 mysqlbinlog /YOURPATH/'mysql-bin.000016 >>/test 查找有没有455562对应的行 或者和这个数字很接近的行 然后使用chang master to 命令跳过这行,命令格式如下 stop slave; CHANGE MASTER TO MASTER_HOST='192.168.192.45',MASTER_USER='XXXX',MASTER_PASSWORD='XXXX',MASTER_LOG_FILE='mysql-bin.000016',MASTER_LOG_POS=455678; start slave; 如果你找不到455562或者和这个数字很接近的行,你可以使用如下命令查看'mysql-bin.000016 的行数 ls -la mysql-bin.000016 如果统计的行数远远少于455562,你可以跳过这个日志,从下一个日志开始复制,命令如下 stop slave; CHANGE MASTER TO MASTER_HOST='192.168.192.45',MASTER_USER='backup',MASTER_PASSWORD='weiphone',MASTER_LOG_FILE='mysql-bin.000017',MASTER_LOG_POS=4; start slave; 错误类型代码2: mysql slave Error_code: 1062 1054 如果日志中出现了这样代码,可能是错误的select,或update操作,master是跳过这些操作,但是被记录到了二进制日志中,slave会依据二进制中的语句做相同的动作,就会报错,知道原理了要做的操作就很简单了 stop slave; set gloable sql_slave_skip_counter=n; //n为你想跳过错误语句的个数 start slave; 如果你不想再遇到这种错误,可以写到slave配置文件中格式如下: slave_skip_errors = 1062 slave_skip_errors = all //跳过所有类型的错误码 本文出自:亿恩科技【www.enkj.com】 |