如何杀死锁定的mysql查询

时间:2010-04-26 02:59:43

标签: php mysql

我正在创建和测试一个mysql连接查询但是每次到目前为止它都会导致数据库表锁定并且网站挂起。然后我必须调用主机并杀死锁定的查询。 这是我可以从phpmyadmin做的事情,所以当我调整脚本工作时不要打扰他们?谢谢你的回复。

4 个答案:

答案 0 :(得分:13)

这可以从phpMyAdmin的首页完成。查找“进程”链接。

您还可以运行命令SHOW PROCESSLIST(或SHOW FULL PROCESSLIST)。这将显示您能够操作的所有查询(即您自己的)。每个查询都将是一个标识符。您可以向任何这些标识符发出KILL命令以终止查询。

此外,您应该考虑使用EXPLAIN测试您的查询。

答案 1 :(得分:0)

我不知道phpMyAdmin,但免费的“mysql工具”包中包含一个名为 MySql Adminstrator 的应用程序,可以让你这样做。它显示了您当前正在运行的查询并提供了一个kill thread按钮(我相信这位于服务器运行状况选项卡中)。

无论如何,Mysql GUI Tools / Mysql Workbench远远优于phpMyAdmin。如果你在本地运行数据库,或者有ssh访问权限,那么就没有理由使用phpMyAdmin。

答案 2 :(得分:0)

我不记得从phpmyadmin这样做的方法。您可以尝试在本地测试副本数据库上测试查询,而不是实时测试,以便获得更好的吞吐量,直到它不再锁定为止。

答案 3 :(得分:0)

最简单的方法是通过mytop,点击“k”并输入要杀死的线程ID。

   Id      User         Host/IP         DB       Time    Cmd    State Query                                                                                                                
   --      ----         -------         --       ----    ---    ----- ----------