3分钟解决MySQL 1062 主从错误

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

1062错误----主键冲突,出现这种情况就是从库出现插入操作,主库又重新来了一遍,iothread没问题,sqlthread出错


解决方案:

1
2
3
4
5
mysql> stop slave;
  
mysql>  set  global  sql_slave_skip_counter=1;
 
mysql> start slave;





故障模拟:

从库如果误插入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
mysql>  insert  into  helei(text)  values ( 'iii' );
Query OK, 1 row affected (0.28 sec)
mysql>  select  from  helei;
+ ----+------+
| id | text |
+ ----+------+
|  1 | aa  
|
|  2 | bb  
|
|  3 | cc  
|
|  4 | ee  
|
|  5 | ff  
|
|  6 | gg  
|
|  7 | hh  
|
|  8 | iii 
|
+ ----+------+
rows  in  set  (0.00
sec)
  
mysql> show slave
status\G
***************************
1. row ***************************
                Slave_IO_State: Waiting  for
master  to  send event
                   Master_Host: 192.168.1.250
                   Master_User: mysync
                   Master_Port: 2503306
                 Connect_Retry: 60
               Master_Log_File: mysql-bin.000005
           Read_Master_Log_Pos: 2509
                Relay_Log_File:
HE1-relay-bin.000005
                 Relay_Log_Pos: 480
         Relay_Master_Log_File: mysql-bin.000005
              Slave_IO_Running: Yes
             Slave_SQL_Running: Yes
  
  
这时候从库是正常的,但由于从库私自插入数据,已经和主库不一致,如果这时主库也插入相同的数据
主库此时没有8,iii这条记录
 
mysql>  select  from  helei;
+ ----+------+
| id | text |
+ ----+------+
|  1 | aa  
|
|  2 | bb  
|
|  3 | cc  
|
|  4 | ee  
|
|  5 | ff  
|
|  6 | gg  
|
|  7 | hh  
|
+ ----+------+
rows  in  set  (0.00
sec)
  
  
  
  
  
  
mysql>show slave status\G
***************************
1. row ***************************
                Slave_IO_State: Waiting  for
master  to  send event
                   Master_Host: 192.168.1.250
                   Master_User: mysync
                   Master_Port: 2503306
                 Connect_Retry: 60
               Master_Log_File: mysql-bin.000005
           Read_Master_Log_Pos: 2709
                Relay_Log_File:
HE1-relay-bin.000005
                 Relay_Log_Pos: 480
         Relay_Master_Log_File: mysql-bin.000005
              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: Could  not  execute  Write_rows event  on  table  test.helei;
Duplicate entry  '8'  for  key  'PRIMARY' , Error_code: 1062; handler error
HA_ERR_FOUND_DUPP_KEY; the event 's master log mysql-bin.000005, end_log_pos
2678
                  Skip_Counter: 0
           Exec_Master_Log_Pos: 2509
               Relay_Log_Space: 851
               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: Could not
execute Write_rows event on table test.helei; Duplicate entry ' 8 ' for key
' PRIMARY ', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event' s
master log mysql-bin.000005, end_log_pos 2678
   Replicate_Ignore_Server_Ids:
              Master_Server_Id: 2503306
                   Master_UUID:
f7c96432-f665-11e5-943f-000c2967a454
              Master_Info_File:
/data/mysql/master.info
                     SQL_Delay: 0
           SQL_Remaining_Delay:  NULL
       Slave_SQL_Running_State:
            Master_Retry_Count: 86400
                   Master_Bind:
       Last_IO_Error_Timestamp:
      Last_SQL_Error_Timestamp: 160331 09:12:02
                Master_SSL_Crl:
            Master_SSL_Crlpath:
            Retrieved_Gtid_Set:
             Executed_Gtid_Set:
                 Auto_Position: 0
1 row  in
set  (0.00 sec)

 

 

1062错误----主键冲突,出现这种情况就是从库出现插入操作,主库又重新来了一遍,iothread没问题,sqlthread出错

 

出现这样的问题,先停从库,set跳过这条事务

 

HE1从库操作

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
mysql> stop slave;
Query OK, 0  rows
affected (0.26 sec)
  
mysql>  set  global  sql_slave_skip_counter=1;(这里写10也是一样的,最好不用这种方法,用pt-slave-restart,无需手动stop/start slave)
Query OK, 0  rows
affected (0.30 sec)
  
mysql> start slave;
Query OK, 0  rows
affected (0.04 sec)
  
mysql> show slave status\G
***************************
1. row ***************************
                Slave_IO_State: Waiting  for
master  to  send event
                   Master_Host: 192.168.1.250
                   Master_User: mysync
                   Master_Port: 2503306
                 Connect_Retry: 60
               Master_Log_File: mysql-bin.000005
           Read_Master_Log_Pos: 2909
                Relay_Log_File:
HE1-relay-bin.000006
                 Relay_Log_Pos: 283
         Relay_Master_Log_File: mysql-bin.000005
              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: 2909
               Relay_Log_Space: 1214
               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: 2503306
                   Master_UUID:
f7c96432-f665-11e5-943f-000c2967a454
              Master_Info_File:
/data/mysql/master.info
                     SQL_Delay: 0
           SQL_Remaining_Delay:  NULL
       Slave_SQL_Running_State: Slave has  read
all  relay log; waiting  for  the slave I/O thread  to  update  it
            Master_Retry_Count: 86400
                   Master_Bind:
       Last_IO_Error_Timestamp:
      Last_SQL_Error_Timestamp:
                Master_SSL_Crl:
            Master_SSL_Crlpath:
            Retrieved_Gtid_Set:
             Executed_Gtid_Set:
                 Auto_Position: 0
1 row  in  set  (0.00
sec)





 本文转自 dbapower 51CTO博客,原文链接:http://blog.51cto.com/suifu/1845114,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
Kubernetes Cloud Native 关系型数据库
提升数据安全与性能,掌握Helm一键部署MySQL 8.0主从技巧
【4月更文挑战第9天】提升数据安全与性能,掌握Helm一键部署MySQL 8.0主从技巧
51 0
|
2月前
|
关系型数据库 MySQL 开发工具
MySQL5.7主从配置(Docker)
MySQL5.7主从配置(Docker)
739 0
|
2月前
|
SQL 关系型数据库 MySQL
解决MySQL主从慢同步问题的常见的解决方案:
解决MySQL主从慢同步问题的方法有很多,以下是一些常见的解决方案: 1. 检查网络连接:确保主从服务器之间的网络连接稳定,避免网络延迟或丢包导致数据同步缓慢。 2. 优化数据库配置:调整MySQL的配置参数,如增大binlog文件大小、调整innodb_flush_log_at_trx_commit等参数,以提高主从同步性能。 3. 检查IO线程和SQL线程状态:通过SHOW SLAVE STATUS命令检查IO线程和SQL线程的状态,确保它们正常运行并没有出现错误。 4. 检查主从日志位置:确认主从服务器的binlog文件和位置是否正确,避免由于错误的日志位置导致同步延迟。 5.
166 1
|
5月前
|
负载均衡 关系型数据库 MySQL
MySQL主从架构的搭建
MySQL主从架构的搭建
61 3
|
4月前
|
SQL 关系型数据库 MySQL
MySQL-主从架构的搭建
MySQL-主从架构的搭建
66 0
|
11天前
|
SQL 关系型数据库 MySQL
MySQL主从模式最佳实践
主从模式是很常见的数据库存储解决方案,一主多从,当然还有双主模式(多主模式),你对数据库的主从模式有哪些见解,欢迎跟 V 哥聊聊。
|
1月前
|
SQL 关系型数据库 MySQL
mysql主从同步出错解决办法
mysql主从同步出错解决办法
16 0
|
5月前
|
消息中间件 关系型数据库 MySQL
在kafka connect 同步 mysql 主从数据库
在kafka connect 同步 mysql 主从数据库
51 0
|
5月前
|
关系型数据库 MySQL 数据库
分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离(一)
分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离(一)
|
5月前
|
关系型数据库 MySQL Java
分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离(二)
分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离(二)