我正在尝试更新数据库特定表格上的一行。
UPDATE `Search`.`credentials` SET `status`='0' WHERE `id`='30';
我收到了错误
ERROR 1205: 1205: Lock wait timeout exceeded; try restarting transaction
SQL Statement: UPDATE `Search`.`credentials` SET `status`='0' WHERE `id`='30'
我已将超时设置为200
show variables like 'innodb_lock_wait_timeout';
+ ---------------------------------- + ------- +
| Variable_name |值|
+ ---------------------------------- + ------- +
| innodb_lock_wait_timeout | 50 |
+ ---------------------------------- + ------- +
数据库已被使用,但不是所有时间,而不是我要更新的表
mysql> show open tables where in_use>0;
+ ----------- + --------------------------- + ------ - + -------------------- +
|数据库|表 | In_use | Name_locked |
+ ----------- + --------------------------- + -------- + -------------------- +
| db1 | PayInformation | 2 | 0 |
| db1 |键盘映射 | 4 | 0 |
| db1 | NoticeInformation | 2 | 0 |
|搜索| 公司 | 1 | 0 |
| db1 | 合同信息|五 | 0 |
+ ---------- + --------------------------- + -------- + - -------------------- +
有时候搜索数据库有更多行,但没有一行使用我需要更新的同一个表。
并从流程列表中得到
mysql> SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST where db="afmSearch";
+ ---- + ------ + ------------- + -------- + --------- + - ----- + ------- + ------ +
| ID |用户|主办 | DB | 命令|时间|国家| 信息|
+ ---- + ------ + ------------- + -------- + --------- + ---- - + ------- + ------ +
| xx |我| my.ip:44604 |搜索|睡觉 | 1 | | NULL |
+ ---- + ------ + ------------- + -------- + --------- + ---- - + ------- + ------ +
有什么想法吗?