#### 13.7.7.29 SHOW PROCESSLIST 语句

[](<>)[](<>)[](<>)[](<>)[](<>)[](<>)

```
SHOW [FULL] PROCESSLIST
```

MySQL 进程列表指示当前由服务器内执行的线程集执行的操作。这[`显示进程列表`](show-processlist.html)声明是过程信息的一种来源。有关此声明与其他来源的比较，请参阅[过程信息的来源](processlist-access.html#processlist-sources).

笔记

从 MySQL 8.0.22 开始，另一种实现[`显示进程列表`](show-processlist.html)基于性能模式可用[`进程列表`](performance-schema-processlist-table.html)表，与默认值不同的是[`显示进程列表`](show-processlist.html)实现，不需要互斥体并且具有更好的性能特征。有关详细信息，请参阅[第 27.12.21.5 节，“进程列表表”](performance-schema-processlist-table.html).

如果你有[`过程`](privileges-provided.html#priv_process)权限，您可以查看所有线程，甚至是属于其他用户的线程。否则（没有[`过程`](privileges-provided.html#priv_process)特权），非匿名用户可以访问有关他们自己的线程的信息，但不能访问其他用户的线程，匿名用户无权访问线程信息。

没有`满的`关键词，[`显示进程列表`](show-processlist.html)仅显示每个语句的前 100 个字符`信息`场地。

这[`显示进程列表`](show-processlist.html)如果您收到“连接太多”错误消息并想了解发生了什么，该语句非常有用。MySQL 保留一个额外的连接供拥有[`CONNECTION_ADMIN`](privileges-provided.html#priv_connection-admin)特权（或已弃用的[`极好的`](privileges-provided.html#priv_super)权限），以确保管理员应该始终能够连接和检查系统（假设您没有将此权限授予所有用户）。

线程可以用[`杀`](kill.html)陈述。看[第 13.7.8.4 节，“KILL 语句”](kill.html).

示例[`显示进程列表`](show-processlist.html)输出：

```
mysql> SHOW FULL PROCESSLIST\G
*************************** 1. row ***************************
     Id: 1
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 1030455
  State: Waiting for master to send event
   Info: NULL
*************************** 2. row ***************************
     Id: 2
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 1004
  State: Has read all relay log; waiting for the slave
         I/O thread to update it
   Info: NULL
*************************** 3. row ***************************
     Id: 3112
   User: replikator
   Host: artemis:2204
     db: NULL
Command: Binlog Dump
   Time: 2144
  State: Has sent all binlog to slave; waiting for binlog to be updated
   Info: NULL
*************************** 4. row ***************************
     Id: 3113
   User: replikator
   Host: iconnect2:45781
     db: NULL
Command: Binlog Dump
   Time: 2086
  State: Has sent all binlog to slave; waiting for binlog to be updated
   Info: NULL
*************************** 5. row ***************************
     Id: 3123
   User: stefan
   Host: localhost
     db: apollon
Command: Query
   Time: 0
  State: NULL
   Info: SHOW FULL PROCESSLIST
```

[`显示进程列表`](show-processlist.html)输出有这些列：

-   [](<>) `Id`

    连接标识符。这与显示在`ID`的列`INFORMATION_SCHEMA` [`进程列表`](information-schema-processlist-table.html)表，显示在`PROCESSLIST_ID`性能模式的列[`线程`](performance-schema-threads-table.html)表，并由[`CONNECTION_ID()`](information-functions.html#function_connection-id)线程内的函数。

-   [](<>) `用户`

    发出语句的 MySQL 用户。一个值`系统用户`指由服务器生成的用于在内部处理任务的非客户端线程，例如，延迟行处理程序线程或副本主机上使用的 I/O（接收器）或 SQL（应用程序）线程。为了`系统用户`, 中没有指定主机`主持人`柱子。`未经身份验证的用户`指已与客户端连接关联但尚未发生客户端用户身份验证的线程。`event_scheduler`指的是监控预定事件的线程（参见[第 25.4 节，“使用事件调度程序”](event-scheduler.html)）。

    笔记

    一种`用户`的价值`系统用户`不同于[`SYSTEM_USER`](privileges-provided.html#priv_system-user)特权。前者指定内螺纹。后者区分系统用户和普通用户帐户类别（请参阅[第 6.2.11 节，“帐户类别”](account-categories.html)）。

-   [](<>) `主持人`

    发出语句的客户端的主机名（除了`系统用户`，没有主机）。TCP/IP 连接的主机名报告在`*`主机名`*:*`客户端端口`*`格式以便更容易确定哪个客户端在做什么。

-   [](<>) `D b`

    线程的默认数据库，或`空值`如果没有选择。

-   [](<>) `命令`

    线程代表客户端执行的命令类型，或`睡觉`如果会话空闲。有关线程命令的说明，请参见[第 8.14 节，“检查服务器线程（进程）信息”](thread-information.html).该列的值对应于`COM_*`xxx`*`客户端/服务器协议的命令和`Com_*`xxx`*`状态变量。看[第 5.1.10 节，“服务器状态变量”](server-status-variables.html).

-   [](<>) `时间`

    线程处于当前状态的时间（以秒为单位）。对于副本 SQL 线程，该值是上次复制事件的时间戳与副本主机的实际时间之间的秒数。看[第 17.2.3 节，“复制线程”](replication-implementation-details.html).

-   [](<>) `状态`

    指示线程正在做什么的动作、事件或状态。对于描述`状态`值，见[第 8.14 节，“检查服务器线程（进程）信息”](thread-information.html).

    大多数状态对应于非常快速的操作。如果一个线程在给定状态中停留数秒，则可能存在需要调查的问题。

-   [](<>) `信息`

    线程正在执行的语句，或`空值`如果它不执行任何语句。如果该语句执行其他语句，则该语句可能是发送到服务器的语句，或者是最内层的语句。例如，如果一个`称呼`语句执行正在执行的存储过程[`选择`](select.html)声明`信息`值显示[`选择`](select.html)陈述。
