在 MySQL 中杀死一个进程
Preet Sanghavi
2023年1月30日
2022年5月13日
在本教程中,我们将学习如何在 MySQL 中终止进程。
很多时候,特定的 MySQL 进程可能需要很长时间才能执行。
它可能会导致系统出现性能问题。随着时间的推移,不同的线程和语句在系统中变得杂乱无章,从而妨碍了服务器的整体功能。
为了解决这个问题并避免高资源使用,我们可以杀死不再需要运行的特定进程。
要杀死 MySQL 中的进程,我们必须在登录到你的 MySQL 帐户后执行两个简单的步骤:
- 列出在 MySQL 中运行的所有进程。
- 使用
KILL
命令终止进程。
列出 MySQL 中运行的所有进程
在我们打算删除或终止任何正在进行的进程之前,我们首先需要识别进程 id
。一旦我们有了进程 id
,我们就可以杀死或终止一个进程。
我们可以使用 show processlist
命令获取 MySQL 中所有现有进程的列表。执行此命令后,我们将立即获取登录用户的正在进行的进程。
正在进行的过程的快照如下。
正如我们所看到的,每个进程都有一个进程 id
,表示用户名的 User
,表示主机服务器的 Host
,表示数据库的 db
。
Command
表示正在考虑的命令的类型,Time
表示查询运行的时间,State
表示进程的状态,Info
表示与进程相关的任何相关信息。
使用 KILL
命令终止进程
一旦我们得到要被杀死的进程的 id
,我们就可以使用 kill <id>
命令来终止进程。
让我们的目标是杀死具有 id
编号 14
的进程。可以使用以下查询来完成此任务。
KILL 14;
这将使 id
进程为 14
,被杀死。
此外,如果我们希望终止与特定用户关联的所有进程,我们可以使用以下查询执行此操作。
SELECT CONCAT('KILL ',id,';') FROM information_schema.processlist WHERE user='preet' INTO OUTFILE '/tmp/processes_text.txt';
在上面的查询中,带有线程和语句的新文件的文件名为 processes_text
。我们可以查看此文件以检查我们是否要终止所有提到的进程。
一旦确定,我们就可以使用以下查询。
source /tmp/processes_text.txt
因此,在 KILL
命令的帮助下,可以终止 MySQL 数据库中的一个或多个进程。
Author: Preet Sanghavi