这篇文章主要介绍“Mysql主机断电导致复制出错 server_errno=1236怎么解决”,在日常操作中,相信很多人在Mysql主机断电导致复制出错 server_errno=1236怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql主机断电导致复制出错 server_errno=1236怎么解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
机房某台服务器短路,造成整个机柜跳闸。其中数台服务器是mysql的数据库主机,结果重启后,slave的db上都发现复制停止,err里发现下面的信息:
[ERROR] Error reading packet from server: Client requested master to start replication from impossible position ( server_errno=1236)
[ERROR] Got fatal error 1236: 'Client requested master to start replication from impossible position' from master when reading data from binary log
[Note] Slave I/O thread exiting, read up to log 'mysql-bin.000008', position 753871857
这个是比较著名的mysql的bug,断电以后master重新生成了binlog,而slave不知道,仍然试图去读取旧的binlog的之后的内容,造成了复制错误,重新change master一下:
CHANGE MASTER TO
MASTER_HOST='192.168.1.184',
MASTER_USER='rep',
MASTER_PASSWORD='rep',
MASTER_LOG_FILE='mysql-bin.000009',
MASTER_LOG_POS=4;
就ok了。
后来又发现很多slave因为duplicate key停止了,为了让db先跑起来,用了--slave-skip-errors
刚以为没事了,网络故障导致内网网络风暴。。。。。所有服务器内网都开始阻塞,应用基本都瘫痪了。一边让IDC去机房排错。一边开始准备调整db和前端走外网地址,没办法,一小时200w啊。。。
change master的方法是:
1.stop slave
2.备份下master.info
3.使用完整的change master 语句修改复制配置:
CHANGE MASTER TO
MASTER_HOST='222.74.100.184',
MASTER_USER='rep',MASTER_PASSWORD='reper',
MASTER_LOG_FILE='HBDB184-bin.073',
MASTER_LOG_POS=258096961;
4.show slave statusG 确认修改信息生效后,start slave
如果仅仅运行CHANGE MASTER TO MASTER_HOST='222.74.100.184';可能导致MASTER_LOG_FILE被自动设置为'HBDB184-bin.001'哦
接下来还要添加外网的rep用户,调整防火墙,添加应用用户的外网帐户,弄到一般,机房那里来消息,好了- -!
到此,关于“Mysql主机断电导致复制出错 server_errno=1236怎么解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!