Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL复制错误(1062)_Mysql_Replication_Mysql Error 1062 - Fatal编程技术网

MySQL复制错误(1062)

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没有这样的错误,并且两台服

我是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;