【发布时间】:2015-02-25 14:35:27
【问题描述】:
我正在使用 innoDB 块,我正在尝试模拟我在生产服务器中遇到的问题。尝试在 MYSQL 的“事务”表中插入一行时。
我使用这个命令锁定了表:
LOCK TABLES transaction AS tran WRITE;
之后,我从我的 Web 应用程序创建了一个事务,并且该事务被锁阻止。问题是这个交易被永远阻塞了。
我可以通过运行这个命令在 MYSQL 中看到它:
show full processlist;
然后就呆在那里。
我将 MYSQL 变量 innodb_lock_wait_timeout 更改为 10 秒,但从未失败。
这是进程列表中的响应:
Waiting for table metadata lock
提前致谢!
【问题讨论】:
-
你不应该锁定整个表:当然事务将被永远锁定。相反,您应该创建一个将锁定您将运行的第二个事务的第一个事务。以dev.mysql.com/doc/refman/5.0/en/… 为例
标签: mysql timeout locking innodb