【问题标题】:MySQL show status - active or total connections?MySQL 显示状态 - 活动或总连接数?
【发布时间】:2011-11-17 22:27:17
【问题描述】:

当我运行show status like 'Con%' 时,它会显示连接数,即 9972,并且还在不断增长。这是活跃的连接数还是总连接数?

【问题讨论】:

    标签: mysql connection


    【解决方案1】:

    为了检查允许的最大连接数,您可以运行以下查询:

    SHOW VARIABLES LIKE "max_connections";
    

    要检查活动连接的数量,您可以运行以下查询:

    SHOW VARIABLES LIKE "max_used_connections";
    

    希望对你有帮助。

    【讨论】:

    • SHOW VARIABLES LIKE "max_used_connections"; 返回Empty set (0.00 sec) 但在variable_name = 'Max_used_connections' 处显示状态;用“`”围绕“variable_name”工作
    • SHOW STATUS WHERE variable_name = "max_used_connections";
    • max_used_connections 显示自数据库启动以来使用的最大连接数,而不是当前活动连接数。来源:dev.mysql.com/doc/refman/8.0/en/…
    【解决方案2】:

    你也可以这样做

    SHOW STATUS WHERE `variable_name` = 'Max_used_connections';
    

    【讨论】:

    • max_used_connections 也有用
    【解决方案3】:

    根据the docs,表示整个历史的总数:

    Connections

    与 MySQL 服务器的连接尝试次数(成功与否)。

    您可以通过Threads_connected 状态变量查看活动 连接数:

    Threads_connected

    当前打开的连接数。

    mysql> show status where `variable_name` = 'Threads_connected';
    +-------------------+-------+
    | Variable_name     | Value |
    +-------------------+-------+
    | Threads_connected | 4     |
    +-------------------+-------+
    1 row in set (0.00 sec)
    

    ...或通过show processlist 命令:

    mysql> show processlist;
    +----+------+-----------------+--------+---------+------+-------+------------------+
    | Id | User | Host            | db     | Command | Time | State | Info             |
    +----+------+-----------------+--------+---------+------+-------+------------------+
    |  3 | root | localhost       | webapp | Query   |    0 | NULL  | show processlist | 
    |  5 | root | localhost:61704 | webapp | Sleep   |  208 |       | NULL             | 
    |  6 | root | localhost:61705 | webapp | Sleep   |  208 |       | NULL             | 
    |  7 | root | localhost:61706 | webapp | Sleep   |  208 |       | NULL             | 
    +----+------+-----------------+--------+---------+------+-------+------------------+
    4 rows in set (0.00 sec)
    

    【讨论】:

    • 连接是否代表用户?那么如果一个页面上有 200 个用户进行数据库查询将是 200 个连接?
    • 是的,有人可以澄清一下。我也有同样的问题。此外,这些变量是否会在每次 MySQL 服务重启后或服务器重启后重置?
    • @Diego Queiroz 没那么简单。如果开发人员都密切关注并且每个用户只需要连接一个数据库,那么是的,每个数据库都将是一个用户。但可能还有其他正在运行的实用程序或备份服务也需要连接。
    • @LonelyRogue 是的,服务器重启后,每个连接都需要重新连接。许多程序/库将自动连接,因此连接数可能会很快填满,而无需明确执行任何操作。但是 MySQL 在重启后不会保留任何旧连接。
    • mysql -e "在variable_name = 'Threads_connected'处显示状态;" -bash: variable_name: command not found ERROR 1064 (42000) at line 1: 你的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行的“='Threads_connected'' 附近使用的正确语法
    【解决方案4】:

    要查看更完整的列表,您可以运行:

    show session status;
    

    show global status;
    

    请参阅this link 以更好地了解用法。

    如果您想了解可以运行的数据库的详细信息:

    status;
    

    【讨论】:

      【解决方案5】:

      这是到目前为止与服务器的连接总数。 要查找当前的连接状态,您可以使用

      mysqladmin -u -p 扩展状态 | grep -wi 'threads_connected\|threads_running' | awk '{ 打印 $2,$4}'

      这会告诉你:

      Threads_connected 12
      
      Threads_running 1  
      
      Threads_connected: Number of connections
      
      Threads_running: connections currently running some sql
      

      【讨论】:

        【解决方案6】:

        根据文档http://dev.mysql.com/doc/refman/5.0/en/server-status-variables.html#statvar_Connections

        连接

        与 MySQL 服务器的连接尝试次数(成功与否)。

        【讨论】:

          【解决方案7】:
          SHOW STATUS WHERE `variable_name` = 'Threads_connected';
          

          这将显示所有打开的连接。

          【讨论】:

          • mysql -e "显示状态variable_name = 'Threads_connected';" -bash: variable_name: command not found ERROR 1064 (42000) at line 1: 你的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行的“='Threads_connected'' 附近使用的正确语法
          【解决方案8】:

          它应该是当前的活动连接数。运行命令processlist进行确认。

          参考网址:http://www.devdaily.com/blog/post/mysql/how-show-open-database-connections-mysql

          编辑:Number of DB connections opened 请看这里,这里描述了实际的线程数(连接数)!

          【讨论】:

          • 我发现参考链接很有用。例如,show status like '%onn%'; 是一个非常有用的查询。
          • 这个答案是错误的,应该删除。查看其他答案。
          • 来自dev.mysql.com/doc/refman/8.0/en/…:“与 MySQL 服务器的连接尝试次数(成功与否)”。这不是活动连接的数量。
          • 各种连接统计、Aborted_connects、Connections 是累积的。 Max_used_connections 是高水位线,Threads_connected 是当前的,但 show processlist 给出了 id 值以及正在发生的事情。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-03-20
          • 2014-06-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多