- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Last_Errno: 1062,Last_Error: Error Duplicate entry由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
线上环境我从来没有碰到过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 。
空的,第四个日志没有录入操作 。
这里解析报错了,解决方案,记录在如此 。
//www.zzvips.com/article/47089.htm 。
[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> 。
最后此篇关于Last_Errno: 1062,Last_Error: Error Duplicate entry的文章就讲到这里了,如果你想了解更多关于Last_Errno: 1062,Last_Error: Error Duplicate entry的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
Eclipse 提示此代码“类型参数 Entry 隐藏了类型 Map.Entry”: import java.util.Map.Entry; public class Test { stat
这两个for语句是等价的。 import java.util.Map; import java.util.Map.Entry; for (Map.Entry entry: map.entrySet()
我想在 python 字典中添加一个键/值,它依赖于现有的键/值。示例 x = {} x["length"] = 12 x["volume"] =x["lenght"] * 10 行得通;但是有没有可
我使用 NuGet 将我的 EntityModel 升级到版本 4.3。 现在我想更改我的 EntityObject.State,但找不到 .Entry() 方法。 当前状态是已删除。 这就是我想要做
我是 Java 新手,正在使用 HashMap 在 Mac 上编写 Java。 但是我遇到了一个问题,找不到答案 import java.util.Map; import java.util.Hash
我正在切换一个小应用程序(Win 7/64 上的 Python 2.7.3/32)来使用 ttk,但我在使 ttk.Entry 按照 tk.Entry 的方式工作时遇到问题;当我设置其内容时,ttk.
为什么我需要在 i.next(); 前面加上 (Map.Entry) ?为什么我不能只有 Map.Entry m = i.next();? 对不起。它是一个 HashMap。 最佳答案 因为它显然不是
我的 xPage SSJS 失败: viewEntry = view.getNext(viewEntry); 有错误 Notes error: Entry not found in index 我确实
我正在使用 DataTable在我的申请中。 我想隐藏左下角的细节,我该怎么做? “显示 1,657 个条目中的 1 到 10 个(从 9,044 个条目中筛选出来)” 这是我的设置: $('#inv
我有两列,一个时间戳和一个已选择卡片的数字。 card added 1 2016-09-23 13:48:48 3 2016-09-23 13:48:48 1
我正在使用 Entity Framework 4.1,并且我有我的 DbContext Override SaveChanges 来审核属性更改。从“GetEntryValueInString”返回空
我正在使用 Tkinter 在 Python 3 上编写 GUI,但每次使用 Entry() 时,我都会收到名称错误。 我尝试了一个更简单的代码版本,(写在下面),但它仍然导致了 NameError:
我刚刚创建了一个插入方法来对数组进行排序,这是我在该方法中完成的代码; public static void insertionSort (Entry[] array2){ for (int
使用这个例子1对于 n:n 关系: (来源:tekstenuitleg.net) 设置主要或主要多对多字段的最佳方法是什么?示例:假设我想将经销商“Devrolijke drinker”(ID AB9
是否可以使用 Entry 通过 AsRef 获取值的 API , 但用 Into 插入它? 这是工作示例: use std::collections::hash_map::{Entry, HashMa
是否可以使用 Entry 通过 AsRef 获取值的 API , 但用 Into 插入它? 这是工作示例: use std::collections::hash_map::{Entry, HashMa
是否可以使用 Entry 通过 AsRef 获取值的 API , 但用 Into 插入它? 这是工作示例: use std::collections::hash_map::{Entry, HashMa
表定义: CREATE TABLE PositionalDataNGS ( Date DATE, Time TIME(3) , X FLOAT(5), Y FLOAT(5), D FLOAT(5) ,
我的平台: PHP 和 MySQL 我这里有什么: 我有 4 个表,分别是“books”、“book_type”、“book_categories”、“all_categories”。 我想做什么:
I am using MySQL 5.1.56, MyISAM. My table looks like this:我使用的是MySQL 5.1.56,MyISAM。我的桌子是这样的: CR
我是一名优秀的程序员,十分优秀!