MySQL复制错误(1062)
我是MySQL新手,经过长时间的搜索,我能够配置主从行复制。我认为它是安全的,我不必一次又一次地检查它 但是今天当我展示奴隶身份时代码>在从机上,然后我发现以下内容 无法在上执行写入\u行事件 表mydatabasename.atable;复制品 键“PRIMARY”的条目“174465”, 错误代码:1062;处理程序错误 HA_ERR_FOUND_DUPP_KEY;活动的 主日志mysql-bin.000004, 结束日志位置60121977 有人能告诉我,当master没有这样的错误,并且两台服务器上的模式都相同时,这怎么会发生呢。以及如何修复它,使其再次发挥作用,以及如何防止将来发生这种情况MySQL复制错误(1062),mysql,replication,mysql-error-1062,Mysql,Replication,Mysql Error 1062,我是MySQL新手,经过长时间的搜索,我能够配置主从行复制。我认为它是安全的,我不必一次又一次地检查它 但是今天当我展示奴隶身份时在从机上,然后我发现以下内容 无法在上执行写入\u行事件 表mydatabasename.atable;复制品 键“PRIMARY”的条目“174465”, 错误代码:1062;处理程序错误 HA_ERR_FOUND_DUPP_KEY;活动的 主日志mysql-bin.000004, 结束日志位置60121977 有人能告诉我,当master没有这样的错误,并且两台服
另外,请告诉我除此之外我还能期待什么。这永远不会发生在师父身上,为什么? SQL系列是从主SQL复制的,
如果记录已经存在于master中,则在master上拒绝mysql 但是在从机上,如果失败,并且复制位置没有前进到下一个SQL(它刚刚停止) 原因? 该记录的插入查询直接写入从机,而不使用从主机复制 如何修复? 跳过slave上的错误,如
SET GLOBAL sql_slave_skip_counter = N;
详情-
或者删除从机上的重复记录,再次恢复从机(让复制进行插入)
更糟糕的情况是,需要您重新进行设置,以确保从机上的数据完整性
如何预防?
检查应用程序级别,确保不直接写入从这包括如何在命令提示符下连接到mysql 拆分可以进行写和读操作的mysql用户,
因此,当不需要写入时,应用程序应使用读取用户(主用户和从用户)。
使用write user(仅限master)执行需要写入数据库的操作。跳过计数器不是可行的解决方案。您总是跳过记录,但它可能会影响其他记录 下面是有关sql从属跳过计数器坏的原因的完整详细信息
您可以删除从属数据库中大于重复的行
DELETE FROM mydatabasename.atable WHERE ID>=174465;
然后
感谢您的回复,但是Slave没有从任何地方得到更新,我只是连接了一个命令行客户端来查看Slave状态,没有其他应用程序或连接打开来直接更新Slave。我通过这个答案解决了我的问题,通过这个连接。此链接可能会对您有所帮助。发生这种情况的原因很多,但是如果您在错误发生后检查主设备和从设备上的数据存储pk=174465,查看数据是否已经相同,这将非常有用。谢谢,我检查了其中一个,它已经存在,但提出问题的原因是怎么可能发生的,在此之前曾发生过一些电源故障,但mysql不是通过使用数据库事务更新从属服务器来确保一致性吗?我每天都会遇到同样的问题,因为在主服务器上运行cron作业。你们找到解决方案了吗?很久以前,我没有使用mySQL,所以我不记得我是如何解决的,但我不认为我能找到一个令人满意的解决方案或答案。你们能提供一个替代方案来跳过计数器吗?
START SLAVE;