2017-08-04 147 views
1

重新启动事务我插入一个数据到我的一个表中,并且我不断收到一个锁。MySQL错误代码:1205.锁超​​时超时;尝试插入

insert into inventory_files(id, pro_id) values(30,6569); 

我收到以下错误消息。

Error Code: 1205. Lock wait timeout exceeded; try restarting transaction 51.004 sec 

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ; 

然后插入该数据。

SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ ; 

我没有问题插入到其他表中。任何其他建议。
我也跑了。

SHOW ENGINE INNODB STATUS; 

没有表锁定。

'的InnoDB', '','

2017年8月4日13点57分34秒0x7f0c44461700 INNODB MONITOR OUTPUT 每从最后29秒计算出的第二平均值

后台线程

srv_master_thread循环:93 srv_active,0 srv_shutdown,2985 srv_idle

srv_master_thread日志刷新和写入:3076

SEMAPHORES

OS WAIT ARRAY INFO:保留数29

OS WAIT ARRAY INFO:信号计数29

RW-共享旋转0,轮52,OS等待26

RW-不含自旋0,舍入0,OS等待0

RW-SX旋转0,舍入0,OS等待每等待0

自旋轮:52.00 RW-共享, 0.00 RW-excl,0。00 RW-SX

交易

事务处理标识计数器2147575956 \ n 吹扫TRX n值完成:○< 2147575378撤消N:Ø< 0状态:运行,但空闲

历史记录列表长度91

每个会话的交易清单中:

---交易421165916588792,没有开始

0锁结构(一个或多个),堆大小1136 0行锁(S)

--- TRANSACTION 421165916587872,未启动

0锁结构(一个或多个),堆大小1136 0行锁(多个)

--- TRANSACTION 2147575922,ACTIVE 104秒

6锁定结构(一个或多个),堆大小1136,52行锁(S),撤消日志条目5

MySQL的线程ID 32, OS线程句柄139690660574976,查询ID 43020本地主机127.0.0.1 my_web_用户

--- TRANSACTION 2147575860,ACTIVE 211秒

6锁定结构(一个或多个),堆大小1136,52行锁(S),撤消日志条目5 MySQL的线程ID 30,OS线程句柄139690661377792的查询ID 40076本地主机127.0.0.1 my_web_user

--- TRANSACTION 2147575771,ACTIVE 413秒 6锁定结构(一个或多个),堆大小1136,52行锁(S),撤消日志条目5 MySQL的线程id 23 ,OS线程句柄139690660976384,查询ID 35541本地主机127.0.0.1 my_web_user

--- TRANSACTION 2147575640,ACTIVE 540秒 6锁定结构(一个或多个),堆大小1136,52行锁(S),撤消日志条目28 MySQL的线程ID 16,OS线程句柄139690661177088,查询ID 29555本地主机127.0。 0.1 my_web_user

--- TRANSACTION 2147575372,ACTIVE 990秒 6锁定结构(一个或多个),堆大小1136,52行锁(S),撤消日志条目28 MySQL的线程ID 11,OS线程句柄139690661578496,查询ID 4137本地主机127.0.0.1 my_web_user

的Trx读视图不会看到TRX ID为> = 2147575373,看到文件I/O I/O线程0状态:瓦特爱听已完成的AIO请求(插入缓冲线程) 我假设my_web_user锁定该行。你如何解锁该行?

+0

的可能的复制[MySQL错误1205:锁等待超时超标(https://stackoverflow.com/问题/ 2383694/mysql-error-1205-lock-wait-timeout-exceeded) – nacho

+0

“没有表锁定。”虽然技术上是真的(因为InnoDB锁定了行,而不是表),但你当然有锁。 'SHOW ENGINE INNODB STATUS;'实际上是一个寻找它的好地方,所以再看看,你可能只是没有找到它。或者将输出添加到您的问题中,我们可能会帮助您找到它。 – Solarflare

+0

它再次锁定。我将发布发动机输出。 – user3525290

回答

1

主要原因我有当现有的进程运行时,这防止了对相同的表正在执行一个新的流程该错误。

尝试

Show full processlist; kill x; 

与您认为这个过程号代替x导致问题

相关问题