ITPub博客

首页 > 数据库 > MySQL > Mysql Slave库同步Master库失败提示Last_SQL_Errno: 1062

Mysql Slave库同步Master库失败提示Last_SQL_Errno: 1062

原创 MySQL 作者:rtt8387 时间:2015-06-15 18:20:33 0 删除 编辑
一、 问题描述:
    查看从库状态时发现Last_SQL_Errno: 1062(主键值重复,入库失败)
具体错误如下:

Last_SQL_Errno: 1062
Last_SQL_Error: Error 'Duplicate entry '95' for key 'PRIMARY'' on query. Default database: 'nobserver_new'. Query: 'INSERT INTO media_class_jieliang (
    dateline,
    media_class,
    a_times,
    m_times
) SELECT
    DATE_FORMAT(adddate(now() ,- 1), '%Y%m%d'),
    IFNULL(
    c.media_class,
    '其他网站'
    ),
    sum(a.fld_atimes),
    sum(a.fld_mtimes)
FROM
    (
        SELECT
            fld_MediaID,
            fld_ATimes,
            fld_MTimes
        FROM
            tab_jieliang
        WHERE
            DATE_FORMAT(fld_AccessDate, '%Y%m%d') = DATE_FORMAT(adddate(now() ,- 1), '%Y%m%d')
    ) a
LEFT OUTER JOIN (
    SELECT
        fld_id,
        fld_Domain
    FROM
        tab_media
) b ON (a.fld_mediaid = b.fld_id)
LEFT OUTER JOIN (
    SELECT
        media_domain,
        media_class
    FROM
        tab_media_category
) c ON (
    b.fld_domain = c.media_domain
)
GROUP BY
    media_class'

二、解决方法:
1、
主库查看media_class_jieliang表中id为95的值
mysql> select * from media_class_jieliang where seqid='95';
+-------+----------+-------------+---------+---------+
| seqid | dateline | media_class | a_times | m_times |
+-------+----------+-------------+---------+---------+
|    95 | 20150612 | ??θ?    |      12 |      12 |
+-------+----------+-------------+---------+---------+
mysql> set names utf8;
mysql> select * from media_class_jieliang where seqid='95';
+-------+----------+-------------+---------+---------+
| seqid | dateline | media_class | a_times | m_times |
+-------+----------+-------------+---------+---------+
|    95 | 20150612 | 视频网站    |      12 |      12 |
+-------+----------+-------------+---------+---------+
2、从库查看media_class_jieliang表中id为95的值
mysql> select * from media_class_jieliang where seqid='95';
+-------+----------+-------------+---------+---------+
| seqid | dateline | media_class | a_times | m_times |
+-------+----------+-------------+---------+---------+
|    95 | 20150611 | ??θ?    |      49 |      49 |
+-------+----------+-------------+---------+---------+
mysql> set names utf8;
mysql> select * from media_class_jieliang where seqid='95';
+-------+----------+-------------+---------+---------+
| seqid | dateline | media_class | a_times | m_times |
+-------+----------+-------------+---------+---------+
|    95 | 20150611 | 视频网站    |      49 |      49 |
+-------+----------+-------------+---------+---------+
3、从库与主库中的数据不一致,手工将从库数据更新

mysql> desc media_class_jieliang;
+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| seqid       | int(16)     | NO   | PRI | NULL    | auto_increment |
| dateline    | varchar(10) | NO   |     | NULL    |                |
| media_class | varchar(50) | NO   |     | NULL    |                |
| a_times     | int(16)     | NO   |     | 0       |                |
| m_times     | int(16)     | NO   |     | 0       |                |
+-------------+-------------+------+-----+---------+----------------+
mysql> replace into media_class_jieliang(seqid,dateline,media_class,a_times,m_times) values(95,'20150612','视频网站',12,12);
4、检查更新结果

mysql> select * from media_class_jieliang where seqid='95';
+-------+----------+-------------+---------+---------+
| seqid | dateline | media_class | a_times | m_times |
+-------+----------+-------------+---------+---------+
|    95 | 20150612 | 视频网站    |      12 |      12 |
+-------+----------+-------------+---------+---------+
5、停止从库服务,跳过该错误,启动从库服务

mysql> slave stop;
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER =1;
mysql> slave start;
6、检查从库同步状态

mysql> show slave status \G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 172.16.30.66
                  Master_User: slave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 302242453
               Relay_Log_File: localhost-relay-bin.000003
                Relay_Log_Pos: 1871144
        Relay_Master_Log_File: mysql-bin.000003
             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: 302242453
              Relay_Log_Space: 42511366
              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: 0
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.00 sec)

ERROR: 
No query specified 

<本文作者:rtt8387,专注Oracle、Mysql数据库技术>
<版权所有,请勿转载。如须转载请详细标明转载出处,否则追究法律责任!>

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24113018/viewspace-1700354/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-07-02

  • 博文量
    43
  • 访问量
    120838