在 MySQL 中杀死一个进程

Preet Sanghavi 2023年1月30日 2022年5月13日
  1. 列出 MySQL 中运行的所有进程
  2. 使用 KILL 命令终止进程
在 MySQL 中杀死一个进程

在本教程中,我们将学习如何在 MySQL 中终止进程。

很多时候,特定的 MySQL 进程可能需要很长时间才能执行。

它可能会导致系统出现性能问题。随着时间的推移,不同的线程和语句在系统中变得杂乱无章,从而妨碍了服务器的整体功能。

为了解决这个问题并避免高资源使用,我们可以杀死不再需要运行的特定进程。

要杀死 MySQL 中的进程,我们必须在登录到你的 MySQL 帐户后执行两个简单的步骤:

  • 列出在 MySQL 中运行的所有进程。
  • 使用 KILL 命令终止进程。

列出 MySQL 中运行的所有进程

在我们打算删除或终止任何正在进行的进程之前,我们首先需要识别进程 id。一旦我们有了进程 id,我们就可以杀死或终止一个进程。

我们可以使用 show processlist 命令获取 MySQL 中所有现有进程的列表。执行此命令后,我们将立即获取登录用户的正在进行的进程。

正在进行的过程的快照如下。

列出 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 数据库中的一个或多个进程。

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub