MySQL8.0连接数查询全攻略

在 MySQL 8.0 中,查看连接数相关信息的命令主要分为查看连接数统计查看最大连接数配置查看连接进程详情等几类,以下是具体命令及说明:

1. 查看当前已建立的连接数(总连接数)

Threads_connected 表示当前 MySQL 服务器已建立的客户端连接总数(包括空闲和活跃连接),是最常用的连接数统计指标:

sql 复制代码
SHOW STATUS LIKE 'Threads_connected';

示例输出:

复制代码
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_connected | 25    |
+-------------------+-------+

2. 查看当前活跃连接数(正在执行 SQL 的连接)

Threads_running 表示当前正在执行 SQL 语句或处理请求的活跃连接数(空闲连接不会计入):

sql 复制代码
SHOW STATUS LIKE 'Threads_running';

示例输出:

复制代码
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| Threads_running | 3     |
+-----------------+-------+

3. 查看 MySQL 的最大连接数配置

max_connections 是 MySQL 配置的最大客户端连接数上限(MySQL 8.0 默认值为 151,可手动调整):

sql 复制代码
SHOW VARIABLES LIKE 'max_connections';

示例输出:

复制代码
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+

4. 查看连接进程的详细信息

(1)简洁版(前 100 条)

SHOW PROCESSLIST 会列出当前所有连接的简要信息(用户、主机、数据库、状态、执行的 SQL 片段等),默认只显示前 100 条:

sql 复制代码
SHOW PROCESSLIST;
(2)完整版(所有连接)

SHOW FULL PROCESSLIST 会显示所有连接的完整信息(包括 SQL 语句的完整内容),适合排查长连接或慢查询:

sql 复制代码
SHOW FULL PROCESSLIST;
(3)通过information_schema表查询(支持 SQL 筛选)

也可直接查询information_schema.PROCESSLIST表,支持用 SQL 语法筛选、分组统计连接数:

sql 复制代码
-- 查看所有连接
SELECT * FROM information_schema.PROCESSLIST;

-- 按客户端主机分组统计连接数(去掉端口号)
SELECT SUBSTRING_INDEX(host, ':', 1) AS client_host, COUNT(*) AS connection_count
FROM information_schema.PROCESSLIST
GROUP BY client_host
ORDER BY connection_count DESC;

-- 按用户分组统计连接数
SELECT user, COUNT(*) AS connection_count
FROM information_schema.PROCESSLIST
GROUP BY user;

-- 查看空闲连接(状态为Sleep的连接)
SELECT * FROM information_schema.PROCESSLIST WHERE command = 'Sleep';

5. 其他相关统计指标

sql 复制代码
-- 查看历史最大连接数(MySQL启动后达到的最大连接数)
SHOW STATUS LIKE 'Max_used_connections';

-- 查看连接数相关的累计统计(如连接尝试次数、成功连接数)
SHOW STATUS LIKE 'Connections';  -- 累计连接尝试次数(包括失败的)
SHOW STATUS LIKE 'Threads_created';  -- 累计创建的线程数(与连接池相关)

权限说明

  • 普通用户执行SHOW PROCESSLIST/ 查询information_schema.PROCESSLIST时,只能看到自己的连接
  • 拥有PROCESS权限的用户(如root),才能查看所有用户的连接信息。

调整最大连接数(可选)

若需调整max_connections,可临时修改(重启 MySQL 后失效):

sql 复制代码
SET GLOBAL max_connections = 500;

若需永久生效,需修改 MySQL 配置文件(my.cnf/my.ini),添加或修改:

复制代码
[mysqld]
max_connections = 500

修改后重启 MySQL 服务即可。

相关推荐
javachen__14 分钟前
mysql新老项目版本选择
数据库·mysql
Dxy123931021632 分钟前
MySQL如何高效查询表数据量:从基础到进阶的优化指南
数据库·mysql
Dying.Light35 分钟前
MySQL相关问题
数据库·mysql
Re.不晚2 小时前
MySQL进阶之战——索引、事务与锁、高可用架构的三重奏
数据库·mysql·架构
chian-ocean4 小时前
CANN 生态进阶:利用 `profiling-tools` 优化模型性能
数据库·mysql
那个村的李富贵6 小时前
解锁CANN仓库核心能力:50行代码搭建国产化AIGC图片风格迁移神器
mysql·信息可视化·aigc·cann
斯普信专业组8 小时前
构建基于MCP的MySQL智能运维平台:从开源服务端到交互式AI助手
运维·mysql·开源·mcp
Exquisite.9 小时前
Mysql
数据库·mysql
·云扬·1 天前
MySQL Binlog落盘机制深度解析:性能与安全性的平衡艺术
android·mysql·adb
霖霖总总1 天前
[小技巧64]深入解析 MySQL InnoDB 的 Checkpoint 机制:原理、类型与调优
数据库·mysql