Mysql主机断电导致复制出错 server_errno=1236怎么解决

发布时间:2021-07-27 11:43 来源:亿速云 阅读:0 作者:chen 栏目: Mysql 欢迎投稿:712375056

这篇文章主要介绍“主机断电导致复制出错 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用户,调整防火墙,添加应用用户的外网帐户,弄到一般,机房那里来消息,好了- -!

免责声明:本站发布的内容(图片、视频和文字)以原创、来自本网站内容采集于网络互联网转载等其它媒体和分享为主,内容观点不代表本网站立场,如侵犯了原作者的版权,请告知一经查实,将立刻删除涉嫌侵权内容,联系我们QQ:712375056,同时欢迎投稿传递力量。