php崩溃后mysql表被锁定
我有一个MySQL数据库和一个innoDB表。我有一个php页面,可以连接、锁定表、执行一些更新,然后解锁表。PHP页面通过wamp由apache提供 php页面将文件上载到数据库。我决定上传一个比分配给PHP的内存大的文件来模拟系统崩溃。这肯定会导致此错误:允许的内存大小18874368字节已用尽(尝试分配6176754字节)。在此之后,更新期间锁定的表仍然被锁定 在此错误后尝试访问表时出现的错误是:表“a”未使用锁表锁定。我知道这是一个锁问题,因为我会弹出一个SQL提示符,尝试从被锁定的表中进行选择,它只是等待,就像表被锁定时一样。如果我随后终止Apache进程,我试图在SQL提示符中运行的语句将最终通过。我的猜测是,当我终止Apache进程时,MySQL意识到由于连接被切断,表锁应该被释放php崩溃后mysql表被锁定,php,mysql,crash,innodb,table-locking,Php,Mysql,Crash,Innodb,Table Locking,我有一个MySQL数据库和一个innoDB表。我有一个php页面,可以连接、锁定表、执行一些更新,然后解锁表。PHP页面通过wamp由apache提供 php页面将文件上载到数据库。我决定上传一个比分配给PHP的内存大的文件来模拟系统崩溃。这肯定会导致此错误:允许的内存大小18874368字节已用尽(尝试分配6176754字节)。在此之后,更新期间锁定的表仍然被锁定 在此错误后尝试访问表时出现的错误是:表“a”未使用锁表锁定。我知道这是一个锁问题,因为我会弹出一个SQL提示符,尝试从被锁定的表中
有什么想法吗?好的,所以读了我的帖子后,我意识到我回答了自己的问题。即使在崩溃过程中,连接仍然保持,因为我使用mysql_pconnect()连接到数据库。我把它改成了mysql_connect(),效果很好。对不起,如果我浪费了任何人的时间,但我希望这有助于别人
--Joshua您可以使用关机功能解锁表格: Qoute来自: 如果客户机会话的连接终止,无论是正常终止还是异常终止,服务器都会隐式释放会话持有的所有表锁(事务性锁和非事务性锁)。如果客户端重新连接,锁将不再有效。此外,如果客户端有一个活动事务,则服务器在断开连接时回滚该事务,如果发生重新连接,则新会话将在启用自动提交的情况下开始 由于您的连接在页面执行并完成/释放后是持久的,因此连接仍然存在
你不应该让连接成为我的错误-我正在考虑关闭功能。回答被打断了。