这个算不算解决,我都不太清楚,因为我感觉网上的说法,只是把错误忽略了,不表示以后用从库时不会出问题!!!

解决的办法是在从库上执行:

mysql> slave stop; mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; mysql> slave start;

上面的方法可以解决问题,还有一种解决问题的办法是通过修改mysql的配置文件,让从库的同步线程忽略这个错误,方法:

修改mysql配置文件 /etc/my.cnf 在 [mysqld]下加一行 slave_skip_errors = 1062 ,保存.重启mysql. mysql slave可以正常同步了.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

专业点的是以下这个:

线上环境我从来没有碰到过1062的问题,测试环境开发环境不停的出现类似问题,以往为了赶时间都是skip或者直接重新做,这会有时间,就好好去查查问题所在。

1 从库报错信息: 
mysql> show slave status\G 
*************************** 1. row *************************** 
               Slave_IO_State: Waiting for master to send event 
                  Master_Host: xxxx0402.china.online.ea.com 
                  Master_User: replication 
                  Master_Port: 3306 
                Connect_Retry: 60 
              Master_Log_File: mysql-bin.000154 
          Read_Master_Log_Pos: 56680675 
               Relay_Log_File: mysql-relay-bin.000455 
                Relay_Log_Pos: 33013454 
        Relay_Master_Log_File: mysql-bin.000152 
             Slave_IO_Running: Yes 
            Slave_SQL_Running: No 
              Replicate_Do_DB:  
          Replicate_Ignore_DB:  
           Replicate_Do_Table:  
       Replicate_Ignore_Table:  
      Replicate_Wild_Do_Table:  
  Replicate_Wild_Ignore_Table:  
                   Last_Errno: 1062 
                   Last_Error: Error 'Duplicate entry '250.1.1-rding-changelogs/myIDENTITY/250/xxxx.xml' for key 'PRIMARY'' on query. Default database: 'identity'. Query: 'INSERT INTO `DATABASECHANGELOG` (`DATEEXECUTED`, `AUTHOR`, `xxxx`, `DESCRIPTION`, `COMMENTS`, `MD5SUM`, `ID`, `FILENAME`) VALUES (NOW(), 'rding', '1.9.3', 'Custom SQL', '', '4ac9fbf5222bc344362ccdecbc072', '250.1.1', 'changelogs/myIDENTITY/250/xxxx.xml')' 
                 Skip_Counter: 0 
          Exec_Master_Log_Pos: 33013308 
              Relay_Log_Space: 33020134 
              Until_Condition: None 
               Until_Log_File:  
                Until_Log_Pos: 0 
           Master_SSL_Allowed: No 
           Master_SSL_CA_File:  
           Master_SSL_CA_Path:  
              Master_SSL_Cert:  
            Master_SSL_Cipher:  
               Master_SSL_Key:  
        Seconds_Behind_Master: NULL 
Master_SSL_Verify_Server_Cert: No 
                Last_IO_Errno: 0 
                Last_IO_Error:  
               Last_SQL_Errno: 1062 
               Last_SQL_Error: Error 'Duplicate entry '250.1.1-rding-changelogs/myIDENTITY/250/xxxx.xml' for key 'PRIMARY'' on query. Default database: 'identity'. Query: 'INSERT INTO `DATABASECHANGELOG` (`DATEEXECUTED`, `AUTHOR`, `xxxx`, `DESCRIPTION`, `COMMENTS`, `MD5SUM`, `ID`, `FILENAME`) VALUES (NOW(), 'rding', '1.9.3', 'Custom SQL', '', '4ac9fbf5222bc344362ccdecbc072', '250.1.1', 'changelogs/myIDENTITY/250/xxxx.xml')' 
  Replicate_Ignore_Server_Ids:  
             Master_Server_Id: 1 
1 row in set (0.00 sec)

2 看表结构 
mysql> show create table DATABASECHANGELOG; 
+-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| Table             | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                              | 
+-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| DATABASECHANGELOG | CREATE TABLE `databasechangelog` ( 
  `ID` varchar(63) NOT NULL, 
  `AUTHOR` varchar(63) NOT NULL, 
  `FILENAME` varchar(200) NOT NULL, 
  `DATEEXECUTED` datetime NOT NULL, 
  `MD5SUM` varchar(32) DEFAULT NULL, 
  `DESCRIPTION` varchar(255) DEFAULT NULL, 
  `COMMENTS` varchar(255) DEFAULT NULL, 
  `TAG` varchar(255) DEFAULT NULL, 
  `xxxx` varchar(10) DEFAULT NULL, 
  PRIMARY KEY (`ID`,`AUTHOR`,`FILENAME`) 坑爹的表设计结构,不是我喜欢的风格 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 | 
+-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec)

3 看已经存在的数据 
mysql> select * from DATABASECHANGELOG  where AUTHOR ='rding'; 
+---------+--------+-----------------------------------------+---------------------+----------------------------------+-------------+------------------------------------------+------+-----------+ 
| ID      | AUTHOR | FILENAME                                | DATEEXECUTED        | MD5SUM                           | DESCRIPTION | COMMENTS                                 | TAG  | xxxx |
+---------+--------+-----------------------------------------+---------------------+----------------------------------+-------------+------------------------------------------+------+-----------+ 
| 250.1.1 | rding  | changelogs/myIDENTITY/250/xxxx.xml | 2013-08-12 20:41:22 | 4ac9fbf5222bc344362ccdecbc072    | Custom SQL  |                                          | NULL | 1.9.3     | 
| 250.1.2 | rding  | changelogs/myIDENTITY/250/xxxx.xml | 2013-08-12 20:41:22 | 8463e1cf4ba029e3ace675d3e69a71d2 | Custom SQL  | Create new table for email change record | NULL | 1.9.3     | 
+---------+--------+-----------------------------------------+---------------------+----------------------------------+-------------+------------------------------------------+------+-----------+ 
2 rows in set (0.00 sec)

4 看binlog,在Relay_Master_Log_File: mysql-bin.000152,去主库找这个binlog解析出来 
解析 
[root@xxxx0402 tmp]# mysqlbinlog mysql-bin.000152 > a152.log 
搜索包含'rding'字符串的语句,因为这个是主键字段之一,所以检索起来应该比较容易。 
[root@xxxx0402 tmp]# grep a152.log 'rding' > rd.log 
grep: rding: No such file or directory 
[root@xxxx0402 tmp]# grep  'rding' a152.log > rd.log 
[root@xxxx0402 tmp]# ll

[root@xxxx0402 tmp]# more rd.log  
INSERT INTO `DATABASECHANGELOG` (`DATEEXECUTED`, `AUTHOR`, `xxxx`, `DESCRIPTION`, `COMMENTS`, `MD5SUM`, `ID`, `FILENAME`) VALUES (NOW(), 'rding', '1.9.3', 'Custom 
 SQL', '', '4ac9fbf5222bc344362ccdecbc072', '250.1.1', 'changelogs/myIDENTITY/250/xxxx.xml') 
INSERT INTO `DATABASECHANGELOG` (`DATEEXECUTED`, `AUTHOR`, `xxxx`, `DESCRIPTION`, `COMMENTS`, `MD5SUM`, `ID`, `FILENAME`) VALUES (NOW(), 'rding', '1.9.3', 'Custom 
 SQL', 'Create new table for email change record', '8463e1cf4ba029e3ace675d3e69a71d2', '250.1.2', 'changelogs/myIDENTITY/250/xxxx.xml')

主库上面只有一条insert sql语句。

5 再去看从库的relay log日志Relay_Log_File: mysql-relay-bin.000455 
[root@eanshlt2mydbc004db002 data]# cp mysql-relay-bin.000455 /tmp 
[root@eanshlt2mydbc004db002 data]# cd /tmp 
[root@eanshlt2mydbc004db002 tmp]# mysqlbinlog mysql-relay-bin.000455 > relay.log 
[root@eanshlt2mydbc004db002 tmp]#  
[root@eanshlt2mydbc004db002 tmp]# grep  'rding' relay.log > rd.log 
[root@eanshlt2mydbc004db002 tmp]# more rd.log 
INSERT INTO `DATABASECHANGELOG` (`DATEEXECUTED`, `AUTHOR`, `xxxx`, `DESCRIPTION`, `COMMENTS`, `MD5SUM`, `ID`, `FILENAME`) VALUES (NOW(), 'rding', '1.9.3', 'Custom 
 SQL', '', '4ac9fbf5222bc344362ccdecbc072', '250.1.1', 'changelogs/myIDENTITY/250/xxxx.xml') 
INSERT INTO `DATABASECHANGELOG` (`DATEEXECUTED`, `AUTHOR`, `xxxx`, `DESCRIPTION`, `COMMENTS`, `MD5SUM`, `ID`, `FILENAME`) VALUES (NOW(), 'rding', '1.9.3', 'Custom 
 SQL', 'Create new table for email change record', '8463e1cf4ba029e3ace675d3e69a71d2', '250.1.2', 'changelogs/myIDENTITY/250/xxxx.xml')

奇怪了,2边的都是一样子的。这个错误怎么判断?

6 去看下主从关于这个数据记录的录入时间。 
从库上面: 
mysql> select * from DATABASECHANGELOG where AUTHOR='rding' and ID='250.1.1' and FILENAME='changelogs/myIDENTITY/250/xxxx.xml'\G; 
*************************** 1. row *************************** 
          ID: 250.1.1 
      AUTHOR: rding 
    FILENAME: changelogs/myIDENTITY/250/xxxx.xml 
DATEEXECUTED: 2013-08-12 20:41:22 
      MD5SUM: 4ac9fbf5222bc344362ccdecbc072 
 DESCRIPTION: Custom SQL 
    COMMENTS:  
         TAG: NULL 
   xxxx: 1.9.3 
1 row in set (0.00 sec)

ERROR:  
No query specified 
mysql>

主库上面 : 
mysql> select * from DATABASECHANGELOG where AUTHOR='rding' and ID='250.1.1' and FILENAME='changelogs/myIDENTITY/250/xxxx.xml'\G; 
*************************** 1. row *************************** 
          ID: 250.1.1 
      AUTHOR: rding 
    FILENAME: changelogs/myIDENTITY/250/xxxx.xml 
DATEEXECUTED: 2013-08-12 19:54:29 
      MD5SUM: 4ac9fbf5222bc344362ccdecbc072 
 DESCRIPTION: Custom SQL 
    COMMENTS:  
         TAG: NULL 
   xxxx: 1.9.3 
1 row in set (0.02 sec)

ERROR:  
No query specified

mysql>  
看DATEEXECUTED时间字段都是8月12日录入的,可惜我的db server由于磁盘有限,只保存了近期的binlog,而且现在主库上面最早的binlog就是出错的那个mysql-bin.000152

7 最后一招,去看从库的binlog,看是否近期有人insert了这条记录 
[root@eanshlt2mydbc004db002 data]# cp mysql-bin.004* /tmp/ 
[root@eanshlt2mydbc004db002 tmp]# mysqlbinlog mysql-bin.004268 > 1.log 
[root@eanshlt2mydbc004db002 tmp]# grep  'rding' 1.log > rd1.log 
[root@eanshlt2mydbc004db002 tmp]# ll rd1.log 
-rw-r--r-- 1 root root 0 Sep  3 17:47 rd1.log 
空的,第一个日志没有录入操作

[root@eanshlt2mydbc004db002 tmp]# mysqlbinlog mysql-bin.004269 > 2.log 
[root@eanshlt2mydbc004db002 tmp]# grep  'rding' 2.log > rd2.log 
[root@eanshlt2mydbc004db002 tmp]# ll rd2.log 
-rw-r--r-- 1 root root 0 Sep  3 17:48 rd2.log 
[root@eanshlt2mydbc004db002 tmp]#  
空的,第二个日志没有录入操作

[root@eanshlt2mydbc004db002 tmp]# mysqlbinlog mysql-bin.004270 > 3.log 
[root@eanshlt2mydbc004db002 tmp]# grep  'rding'  3.log > rd3.log 
[root@eanshlt2mydbc004db002 tmp]# ll rd3.log 
-rw-r--r-- 1 root root 0 Sep  3 17:49 rd3.log 
[root@eanshlt2mydbc004db002 tmp]#  
空的,第三个日志没有录入操作

[root@eanshlt2mydbc004db002 tmp]# mysqlbinlog mysql-bin.004271 > 4.log 
ERROR: Error in Log_event::read_log_event(): 'read error', data_len: 438, event_type: 2 
[root@eanshlt2mydbc004db002 tmp]# grep  'rding' 4.log > rd4.log 
[root@eanshlt2mydbc004db002 tmp]# ll rd4.log 
-rw-r--r-- 1 root root 0 Sep  3 17:50 rd4.log 
空的,第四个日志没有录入操作

这里解析报错了,解决方案,记录在如此 
  http://blog.csdn.net/mchdba/article/details/11011229 
[root@eanshlt2mydbc004db002 tmp]# mysqlbinlog mysql-bin.004272 > 5.log 
[root@eanshlt2mydbc004db002 tmp]# grep  'rding' 5.log > rd5.log 
[root@eanshlt2mydbc004db002 tmp]# ll rd5.log 
-rw-r--r-- 1 root root 0 Sep  3 18:07 rd5.log 
[root@eanshlt2mydbc004db002 tmp]#  
空的,第五个日志没有录入操作

解析了从库的5个日志,都没有看到这条纪律的insert操作,问题到此卡住了,原因何在?这边开发的兄弟们已经在催了,我只要skip之后从库重新做了。 

mysql> stop slave; 
set global sql_slave_skip_counter=1; 
start slave; 
show slave status\G 
Query OK, 0 rows affected (0.09 sec)

mysql> set global sql_slave_skip_counter=1; 
Query OK, 0 rows affected (0.00 sec)

mysql> start slave; 
Query OK, 0 rows affected (0.00 sec) 
mysql> show slave status\G 
*************************** 1. row *************************** 
               Slave_IO_State: Waiting for master to send event 
                  Master_Host: xxxx0402.china.online.ea.com 
                  Master_User: replication 
                  Master_Port: 3306 
                Connect_Retry: 60 
              Master_Log_File: mysql-bin.000184 
          Read_Master_Log_Pos: 27865900 
               Relay_Log_File: mysql-relay-bin.000495 
                Relay_Log_Pos: 253 
        Relay_Master_Log_File: mysql-bin.000171 
             Slave_IO_Running: Yes 
            Slave_SQL_Running: Yes 
              Replicate_Do_DB:  
          Replicate_Ignore_DB:  
           Replicate_Do_Table:  
       Replicate_Ignore_Table:  
      Replicate_Wild_Do_Table:  
  Replicate_Wild_Ignore_Table:  
                   Last_Errno: 0 
                   Last_Error:  
                 Skip_Counter: 0 
          Exec_Master_Log_Pos: 107 
              Relay_Log_Space: 8000 
              Until_Condition: None 
               Until_Log_File:  
                Until_Log_Pos: 0 
           Master_SSL_Allowed: No 
           Master_SSL_CA_File:  
           Master_SSL_CA_Path:  
              Master_SSL_Cert:  
            Master_SSL_Cipher:  
               Master_SSL_Key:  
        Seconds_Behind_Master: 3434734 
Master_SSL_Verify_Server_Cert: No 
                Last_IO_Errno: 0 
                Last_IO_Error:  
               Last_SQL_Errno: 0 
               Last_SQL_Error:  
  Replicate_Ignore_Server_Ids:  
             Master_Server_Id: 1 
1 row in set (0.11 sec)

mysql>

mysql主从复制错误:Last_SQL_Error: Error #39;Duplicate entry #39;327#39; for key #39;PRIMARY#39;#39; ...相关推荐

  1. sqlalchemy.exc.IntegrityError: (mysql.connector.errors.IntegrityError) 1062 (23000): Duplicate entry

    sqlalchemy.exc.IntegrityError: (mysql.connector.errors.IntegrityError) 1062 (23000): Duplicate entry ...

  2. mysql主从复制错误sql-running no

    故障现象: 进入slave服务器,运行: mysql> show slave status\G         .......             Relay_Log_File: local ...

  3. mysql 1045错误ODBC_MySQL ERROR 1045 (28000) 错误的解决办法

    错误现象: ERROR 1045 (28000): Access denied for user'ODBC'@'localhost'(using password: NO) ERROR 1045 (2 ...

  4. MySQL主从复制错误——列类型转换错误

    | 背景 有客户咨询说,自己的从库show slave status出现了报错,报错信息显示如下: column 4 of table 'hh_db_mk.hh_vhl_application'can ...

  5. 4、Mysql 主从复制报错[ERROR] [MY-013117] 踩坑

    2020-07-01T14:34:42.709318Z 12 [ERROR] [MY-013117] [Repl] Slave I/O for channel '': Fatal error: The ...

  6. mysql 1356错误_MySQL ERROR 1356 (HY000)

    一.现象 使用备份软件备份报错 ERROR 1356 (HY000): View 'sys.host_summary' references invalid table(s) or column(s) ...

  7. MySQL报错:IntegrityError: (1062, “Duplicate entry ‘111‘ for key ‘id‘“)

    原因:id字段设置了主键后,不允许输入重复值. 解决方法: (1)删掉已经存在的值后重新插入. (2)将字段的主键约束删除.

  8. MySQL 新增字段(alter table add column),报错:Duplicate entry

    问题 执行一个增加字段的DDL语句脚本时,报错,错误如下: Error 1062: Duplicate entry 'c51d3db8-59a5 2022-06-28 17:59:59' for ke ...

  9. mysql duplicateentry_[MySQL]mysqldump出来数据再导入回去,为什么会出现Duplicate entry?...

    库里的一个表,使用varchar(32)+int(16)作为主键,表结构: CREATE TABLE `name_lv` ( `name` varchar(32) NOT NULL, `lv` var ...

最新文章

  1. 使用C++ ostringstream来格式化字符串输出
  2. 飞线5根连接图_“飞线”和“跳线”有什么区别,你用对了吗?电路故障的排查方法...
  3. BZOJ 3175 最大独立集
  4. Android构建boot.img(二):kernel的拷贝与打包
  5. wxWidgets:wxTextWrapper类用法
  6. SAP plant and location
  7. checking size of char… configure: error: cannot compute sizeof (char) 解决方法
  8. mui.ajax php,求助!!!关于mui ajax获取不到后台数据
  9. 调试安装php源码,Xdebug的安装与配置,帮助调试PHP程序
  10. Python 分析 10 万条弹幕告诉你:《古董局中局2》到底好不好看?
  11. poj 1056 IMMEDIATE DECODABILITY trie树 ——字典树 静态数组版
  12. 3月10日 QR分解求非齐次线性,SVD分解求齐次线性最小二乘
  13. 传统蓝牙HCI连接的流程介绍
  14. 注册时添加学号Idnumber
  15. 2019数学建模国赛C题
  16. 2019-8-24 小米商城商品展示界面
  17. 基于Python的Excel自动生成软件——以工作日志为例
  18. Unity3D制作天空盒
  19. 计算机交互式登录进程初始化失败,Windows 7开机提示“交互式登录进程初始化失败”的解决方法...
  20. SOA成功案例—中远集运全球EDI平台建设

热门文章

  1. 【Android游戏开发之十】(优化处理)详细剖析Android Traceview 效率检视工具
  2. FSMO角色的Windows界面查看和转移示例
  3. 好程序员Web前端教程分享Vue学习心得
  4. Centos7设置网络
  5. Windows Server vNext Technical Preview UI Build 9841
  6. android adb命令
  7. Tomcat5.0与SqlServer2000配置连接池(jtds驱动)
  8. 侧链,驱动链,和根链的双向锚定设计
  9. 欧洲、加拿大、澳大利亚新增2.1万个点可购买比特币现金
  10. Sonar代码质量管理