尝试通过以下方式获取某些表的写锁:
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