MySQL show status - active or total connections?
Asked Answered
J

9

319

When I run show status like 'Con%' it shows the number of connections, which is 9972 and constantly growing. Is this an active number of connections or connections made in total?

Jacy answered 15/9, 2011 at 14:10 Comment(0)
S
587

According to the docs, it means the total number throughout history:

Connections

The number of connection attempts (successful or not) to the MySQL server.

You can see the number of active connections either through the Threads_connected status variable:

Threads_connected

The number of currently open connections.

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

... or through the show processlist command:

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)
Shattuck answered 10/11, 2011 at 13:52 Comment(5)
Does a connection represent a user? So if there are 200 users on a page that makes database queries will be 200 connections?Divert
Yes, can someone clarify it. I too have same question. Also, does these variables reset after every MySQL Services restart or after Server reboot ?Plagal
@Diego Queiroz It's not that simple. If the developer both paid close attention and if there's only 1 database that needs to be connected to per user, then yes, each of these will be a user. But it's possible there are other utilities running or backup services that will also need to connect.Voiceful
@Plagal Yes, after the server restarts, every connection needs to reconnect. Many programs/libraries will auto-connect so the # of connections might fill up quickly without explicitly doing anything. But MySQL won't keep any old connections after a restart.Voiceful
mysql -e "SHOW STATUS WHERE variable_name = 'Threads_connected';" -bash: variable_name: command not found ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '= 'Threads_connected'' at line 1Chosen
H
166
SHOW STATUS WHERE `variable_name` = 'Threads_connected';

This will show you all the open connections.

Huckaback answered 8/7, 2013 at 22:18 Comment(1)
mysql -e "SHOW STATUS WHERE variable_name = 'Threads_connected';" -bash: variable_name: command not found ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '= 'Threads_connected'' at line 1Chosen
C
36

You can also do

SHOW STATUS WHERE `variable_name` = 'Max_used_connections';
Cobaltous answered 28/1, 2017 at 9:53 Comment(2)
max_used_connections is also usefulBourbon
Shouldn't max_user_connections refer to the maximum number of user allowed to connect to the database at the same time? This reports the fixed variable of mysql, not an actual operative value.Archangel
D
27

This is the total number of connections to the server till now. To find current conection status you can use

mysqladmin -u -p extended-status | grep -wi 'threads_connected\|threads_running' | awk '{ print $2,$4}'

This will show you:

Threads_connected 12

Threads_running 1  

Threads_connected: Number of connections

Threads_running: connections currently running some sql
Dissimilitude answered 26/8, 2013 at 11:44 Comment(0)
D
23

To see a more complete list you can run:

show session status;

or

show global status;

See this link to better understand the usage.

If you want to know details about the database you can run:

status;
Deer answered 25/9, 2015 at 14:5 Comment(0)
S
10

In order to check the maximum allowed connections, you can run the following query:

SHOW VARIABLES LIKE "max_connections";

To check the number of active connections, you can run the following query:

SHOW VARIABLES LIKE "max_used_connections";

Hope it helps.

Stink answered 13/1, 2020 at 10:11 Comment(3)
SHOW VARIABLES LIKE "max_used_connections"; returned Empty set (0.00 sec) but SHOW STATUS WHERE variable_name = 'Max_used_connections'; with "`" around "variable_name" workedSubconscious
SHOW STATUS WHERE variable_name = "max_used_connections";Tlemcen
max_used_connections shows the maximum number of connections used since the database started not the current active connections. Source: dev.mysql.com/doc/refman/8.0/en/…Hypognathous
A
2

As per doc http://dev.mysql.com/doc/refman/5.0/en/server-status-variables.html#statvar_Connections

Connections

The number of connection attempts (successful or not) to the MySQL server.

Assuan answered 22/9, 2013 at 9:28 Comment(0)
B
1

A GUI solutions of MySQL queries:

If someone wants to show all active connection without any MySQL code, then you can use Session Manager in dbForge Studio:

Simply, open Database > Session Manager in the upper menu, and you'll see all active connections:

It will do the same thing that is done by these MySQL commands:

show full processlist;
SELECT * FROM information_schema.PROCESSLIST p;
SELECT * FROM performance_schema.threads t;
Bayless answered 31/8, 2023 at 12:23 Comment(0)
D
-3

It should be the current number of active connections. Run the command processlist to make sure.

URL for reference: http://www.devdaily.com/blog/post/mysql/how-show-open-database-connections-mysql

EDIT: Number of DB connections opened Please take a look here, the actual number of threads (connections) are described here!

Dorelle answered 15/9, 2011 at 14:13 Comment(4)
I've found the reference links useful. For example, show status like '%onn%'; is a very useful query.Dyun
This answer is wrong and should be deleted. See the other answers.Spectator
From dev.mysql.com/doc/refman/8.0/en/…: "The number of connection attempts (successful or not) to the MySQL server". It is NOT the number of active connections.Firepower
All sorts of connect stats, Aborted_connects, Connections are cumulative. Max_used_connections is the high water mark, Threads_connected is current, but show processlist gives id values as well as what is going on.Donohue

© 2022 - 2024 — McMap. All rights reserved.