mysql表获取写锁定被阻止,而show open表显示目标表没有锁定(In_use = 0)

时间:2019-06-09 17:32:57

标签: mysql synchronization locking

尝试通过以下方式获取某些表的写锁:

LOCK TABLE infoTable write;

我的Python3脚本被阻止,并且 show processlist 表示该脚本通过等待获取写锁而被阻止:

Waiting for table metadata lock

但是, show open table 的结果表明,目标表infoTable未被任何会话锁定

mysql> show open tables where In_use > 0;
Empty set (0.00 sec)

那么当表未被任何其他会话锁定时,如何阻止获取写锁定呢?

跟进1: 如评论所建议,我试图获取事务的锁定状态,没有事务锁定目标表。

mysql> SELECT * FROM INNODB_LOCK_WAITS;
Empty set, 1 warning (0.00 sec)

其他信息供您参考: mysql版本:mysql Ver 14.14 Distrib 5.7.24,适用于Linux(x86_64),使用EditLine包装器

操作系统信息:Linux 4.15.0-42-generic#45-Ubuntu SMP Thu Nov 15 19:32:57 UTC 2018 x86_64 x86_64 x86_64 GNU / Linux

0 个答案:

没有答案