Answers:
您应该考虑通过设置innodb_lock_wait_timeout来增加InnoDB的锁定等待超时值,默认值为50秒
mysql> show variables like 'innodb_lock_wait_timeout';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| innodb_lock_wait_timeout | 50 |
+--------------------------+-------+
1 row in set (0.01 sec)
您可以/etc/my.cnf
使用此行将其永久设置为更高的值
[mysqld]
innodb_lock_wait_timeout=120
并重启mysql。如果您目前无法重启mysql,请运行以下命令:
SET GLOBAL innodb_lock_wait_timeout = 120;
您也可以在整个会话期间进行设置
SET innodb_lock_wait_timeout = 120;
跟着你的查询
此问题背后的原因是,如果您正在运行许多自定义脚本并在数据库连接有机会关闭之前杀死了这些脚本。
某些东西阻止了查询的执行。最有可能是另一个查询在查询中的一个表中进行更新,插入或删除。您必须找出是什么:
如果可以从CLI登录到MySQL并运行以下命令
SHOW PROCESSLIST;
找到阻塞/睡眠过程后,找到它id
并运行:
KILL {id};
重新运行您的初始查询。
可能是该链接会对您有所帮助: SQLSTATE [HY000]:常规错误:1205超出了锁定等待超时;默认值是:尝试重新启动事务Magento。
增加您在服务器上的php.ini中的执行时间,或询问主机提供商。