如何终止被锁定的MySQL查询

3

我正在创建和测试一个mysql连接查询,但每次都会导致数据库表锁定并使网站挂起。然后我必须打电话给主机,让他们杀死被锁定的查询。 我能否从phpmyadmin中进行此操作,以便在调整脚本以使其正常工作时不必打扰他们? 谢谢任何回复。

4个回答

13

您可以在phpMyAdmin的首页上找到"Processes"链接来执行此操作。

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

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


0
最简单的方法是通过mytop,按下"k"并输入您想要终止的线程ID。
   Id      User         Host/IP         DB       Time    Cmd    State Query                                                                                                                
   --      ----         -------         --       ----    ---    ----- ----------                                                                                                           

0

我不知道phpMyAdmin,但免费的“mysql工具”包含一个名为 MySql管理员的应用程序,可以让您做到这一点。它会显示当前正在运行的查询,并提供一个终止线程按钮(我相信这在服务器健康选项卡中)。

Mysql GUI工具/ Mysql Workbench比phpMyAdmin要好得多。如果您正在本地运行数据库或具有ssh访问权限,则没有理由使用phpMyAdmin。


非常感谢您的建议。我会先将它安装在本地并进行测试。 - jcure

0

我不记得在phpmyadmin中有一种方法可以这样做。您可以尝试在本地测试副本数据库上测试查询,而不是在线上进行,以获得更好的吞吐量,直到它不再锁定。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接