开发者社区> 问答> 正文

mysql binglog同步问题 400 请求报错 

最近在工作中遇到一个很诡异的问题,想问问各位mysql大神
情况是这这样的,(工作问题就不公开了)
有一个表A

create table A( id binint(20) not null auto_increment, name varchar(20), age smallint(4), createTime datetime, primary key(id) ) ENGINE=MyISAM;
表A的数据主要是从其它表拉取数据,每天执行类似这样的语句,insert into A(name,age,createTime) select name,age,createTime from B b where not exists(select 1 from C where id=b.id);
但是今天发现C表的数据,主机比备机多几条(中间有出错过一次),现在A表是空的,B表主备一致,这样就导致select name,age,createTime from B b where not exists(select 1 from C where id=b.id) 这条语句备机查出来要比主机多,同步时会出现'Duplicate entry '387923' for key 1'类似的错误,于是我进行了这样的处理
STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; START SLAVE;
先跳过备机的mysqlerror。我的疑问是在同步的时候,binlog里只同步语句,但是主键ID也同步过来了,想问问是不是这个原因
另外,最近刚刚开始部分运维工作,想问问大家有没有合适的mysql书籍推荐,主要是针对mysql管理方面的

展开
收起
kun坤 2020-05-29 19:20:12 629 0
1 条回答
写回答
取消 提交回答
  • 建议在master上执行你的insert语句后,用mysqlbinlog分别导出master和slave上的binlog的SQL语句,对比分析一下,看看有什么区别:

    mysqlbinlog /var/log/mysql/binlog > binlog.sql

    书的话推荐Percona核心团队(博客)编写的《高性能MySQL》。 淘宝的MySQL团队 今年翻译了第三版,可以去试看几章:

    http://www.itpub.net/thread-1776627-1-1.html ######感谢

    2020-05-29 19:20:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像