我正在将一个数据插入到我的一个表中,并且我一直在锁定。
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-08-04 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等待阵列信息:预订计数29
OS WAIT ARRAY INFO:信号计数29
RW-shared旋转0,轮次52,OS等待26
RW-excl旋转0,循环0,OS等待0
RW-sx旋转0,循环0,OS等待0
每次等待旋转:52.00 RW共享,0.00 RW-excl,0.00 RW-sx
TRANSACTIONS
Trx id counter 2147575956 \ n 清除为trx&n; n:o< 2147575378撤消n:o< 0状态:正在运行但空闲
历史列表长度91
每届会议的交易清单:
--- TRANSACTION 421165916588792,未开始
0 lock struct(s),堆大小1136,0行锁(
)--- TRANSACTION 421165916587872,未开始
0 lock struct(s),堆大小1136,0行锁(
)--- TRANSACTION 2147575922,ACTIVE 104秒
6个lock struct(s),堆大小1136,52行锁,undo log entries 5
MySQL thread id 32,OS thread handle 139690660574976,query id 43020 localhost 127.0.0.1 my_web_user
--- TRANSACTION 2147575860,ACTIVE 211 sec
6个lock struct(s),堆大小1136,52行锁,undo log entries 5 MySQL线程ID 30,OS线程句柄139690661377792,查询ID 40076 localhost 127.0.0.1 my_web_user
--- TRANSACTION 2147575771,ACTIVE 413秒 6个锁结构,堆大小1136,52行锁,撤消日志条目5 MySQL线程ID 23,OS线程句柄139690660976384,查询ID 35541 localhost 127.0.0.1 my_web_user
--- TRANSACTION 2147575640,ACTIVE 540秒 6个锁结构,堆大小1136,52行锁,撤消日志条目28 MySQL线程ID 16,OS线程句柄139690661177088,查询ID 29555 localhost 127.0.0.1 my_web_user
--- TRANSACTION 2147575372,ACTIVE 990 sec 6个锁结构,堆大小1136,52行锁,撤消日志条目28 MySQL线程ID 11,OS线程句柄139690661578496,查询ID 4137 localhost 127.0.0.1 my_web_user
Trx读取视图不会看到id为> = 2147575373的trx,看到< 2147575373 文件I / O. I / O线程0状态:等待完成的aio请求(插入缓冲线程) 我假设my_web_user正在锁定该行。你怎么解开这个行?
答案 0 :(得分:2)
我遇到此错误的主要原因是现有进程正在运行,这会阻止在同一个表上执行新进程。
尝试
Show full processlist; kill x;
将x替换为您认为导致问题的流程编号
答案 1 :(得分:0)
显示完整的进程列表;杀死x;
在使用来自工作台的长查询时为我工作;