找回密码
 立即注册
首页 业界区 安全 MySQL查询当前连接数的语句

MySQL查询当前连接数的语句

痕厄 2025-6-11 13:06:52
1. 查看当前总连接数
  1. SHOW STATUS LIKE 'Threads_connected';
复制代码

  • 返回当前建立的连接总数
 

2. 查看最大连接数配置
  1. SHOW VARIABLES LIKE 'max_connections';
复制代码

  • 显示服务器允许的最大并发连接数
 

3. 查看详细的连接信息
  1. SHOW PROCESSLIST;
复制代码

  • 显示所有连接的详细信息(用户、来源IP、执行的SQL等)
 

4. 按用户分组统计连接数
  1. SELECT user, COUNT(*) as connections
  2. FROM information_schema.processlist
  3. GROUP BY user;
复制代码
 
5. 查看连接数使用率
  1. SELECT
  2.   (SELECT VARIABLE_VALUE
  3.    FROM performance_schema.global_status
  4.    WHERE VARIABLE_NAME = 'Threads_connected') AS current_connections,
  5.   
  6.   (SELECT VARIABLE_VALUE
  7.    FROM performance_schema.global_variables
  8.    WHERE VARIABLE_NAME = 'max_connections') AS max_connections,
  9.   
  10.   ROUND((SELECT VARIABLE_VALUE
  11.          FROM performance_schema.global_status
  12.          WHERE VARIABLE_NAME = 'Threads_connected') /
  13.         (SELECT VARIABLE_VALUE
  14.          FROM performance_schema.global_variables
  15.          WHERE VARIABLE_NAME = 'max_connections') * 100, 2) AS connection_usage_rate;
复制代码
 
6. 查看不同状态的连接数
  1. SELECT command, COUNT(*)
  2. FROM information_schema.processlist
  3. GROUP BY command;
复制代码
 
7. 查看空闲连接数(Sleep状态)
  1. SELECT COUNT(*)
  2. FROM information_schema.processlist
  3. WHERE command = 'Sleep';
复制代码
 
注意事项:


  • 需要至少 PROCESS 权限才能查看所有连接
  • 生产环境连接数接近 max_connections 时需要扩容或优化
  • 长时间 Sleep 的连接可以考虑适当调低 wait_timeout 参数
如果需要终止连接,可以使用:
  1. KILL [connection_id];  -- 从SHOW PROCESSLIST结果中获取ID
复制代码
 

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册