我有一个 MySQL 数据库和一个 innoDB 表。我有一个连接、锁定表、进行一些更新、然后解锁表的 php 页面。PHP 页面正在通过 wamp 与 apache 一起提供。
php 页面将文件上传到数据库。我决定通过上传一个大于分配给 PHP 内存的文件来模拟系统崩溃。这肯定导致了这个错误:允许的内存大小为 18874368 字节用尽(试图分配 6176754 字节)。之后,在更新期间被锁定的表仍然被锁定。
在出现此错误后尝试访问表时出现的错误是:表 'a' 未使用 LOCK TABLES 锁定。我知道这是一个锁定问题,因为我会弹出一个 SQL 提示并尝试从被锁定的表中进行选择,它只是等待,就像在表被锁定时一样。如果我随后终止 Apache 进程,我试图在 SQL 提示符中运行的语句最终将通过。我的猜测是,当我杀死 Apache 进程时,MySQL 意识到由于连接被切断,表锁应该被释放。
有任何想法吗??