mysql ERROR 1205:1205:超出锁定等待超时;尝试重新启动事务

时间:2017-02-28 13:00:46

标签: mysql optimization

我正在尝试更新数据库特定表格上的一行。

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 |
  + ---- + ------ + ------------- + -------- + --------- + ---- - + ------- + ------ +

有什么想法吗?

0 个答案:

没有答案