Mysql连接数和状态

连接数查看

show processlist: 列出当前用户的前100条连接信息;
show full processlist: 列出当前用户的所有连接信息;
当root用户登陆后,能够查看所有用户的连接数;

mysql> show processlist;
+----+------+---------------------+------+---------+-------+----------+------------------+
| Id | User | Host                | db   | Command | Time  | State    | Info             |
+----+------+---------------------+------+---------+-------+----------+------------------+
|  4 | root | 192.168.8.133:57398 | sys  | Sleep   |  7973 |          | NULL             |
|  5 | root | 192.168.8.133:57400 | NULL | Sleep   | 23704 |          | NULL             |
| 17 | root | localhost           | NULL | Query   |     0 | starting | show processlist |
+----+------+---------------------+------+---------+-------+----------+------------------+
3 rows in set (0.00 sec)

mysql> show full processlist;
+----+------+---------------------+------+---------+-------+----------+-----------------------+
| Id | User | Host                | db   | Command | Time  | State    | Info                  |
+----+------+---------------------+------+---------+-------+----------+-----------------------+
|  4 | root | 192.168.8.133:57398 | sys  | Sleep   |  7982 |          | NULL                  |
|  5 | root | 192.168.8.133:57400 | NULL | Sleep   | 23713 |          | NULL                  |
| 17 | root | localhost           | NULL | Query   |     0 | starting | show full processlist |
+----+------+---------------------+------+---------+-------+----------+-----------------------+
3 rows in set (0.00 sec)

最大连接数查看

mysql> show variables like '%max_connections%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+
1 row in set (0.01 sec)

mysql> show status like '%Threads%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| Delayed_insert_threads | 0     |
| Slow_launch_threads    | 0     |
| Threads_cached         | 1     |
| Threads_connected      | 3     |     // 连接数
| Threads_created        | 4     |     //为处理连接而创建的线程数
| Threads_running        | 1     |     // 并发数
+------------------------+-------+
6 rows in set (0.01 sec)

max_connections,允许同时连接DB的客户端的最大线程数。如果客户端的连接数超过了max_connections,应用就会收到“too many connections”的错误。

修改最大连接数

打开my.ini,修改max_connections=100(默认为100)。在linux中为/etc/my.cnf文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MySQL连接数过多的情况有多种可能性。常见的情况包括没有正确关闭连接,导致连接数不断增加,当连接数达到最大限制时,会出现"Too many connections"错误。另外,在某些情况下,MySQL的默认最大连接数可能会被占用,导致无法通过登录MySQL来调整参数来处理这个错误。 要解决此问题,可以采取以下方法: 1. 检查代码mysql_connect和mysql_close函数是否正确使用。确保在每次使用完数据库连接后都调用了mysql_close来关闭连接,释放资源。 2. 使用命令行工具或者通过查询系统变量的方式,确认当前MySQL的最大连接数设置。可以通过以下命令登录MySQL并查询最大连接数: ``` sudo mysql -uroot -p ``` 然后输入密码,如果出现"ERROR 1040 (00000): Too many connections"错误,说明当前连接数已经达到了最大限制。 3. 查看当前MySQL连接情况。可以通过以下方式查看当前连接数和已经建立的连接数: ``` SHOW STATUS LIKE 'Threads_connected'; ``` 这将显示当前连接数。如果连接数过多,可以通过以下命令查看当前所有的连接: ``` SHOW PROCESSLIST; ``` 这将显示当前所有的连接和相关信息,包括连接的状态、用户和主机等。 4. 根据现有的连接数情况,评估是否需要增加最大连接数限制。如果连接数经常达到最大限制,可以考虑增加最大连接数。可以通过修改MySQL的配置文件my.cnf来设置最大连接数参数max_connections。找到该配置文件并添加或修改以下行: ``` max_connections = 200 ``` 然后重新启动MySQL服务。 需要注意的是,增加最大连接数可能会对服务器资源造成负担,因此在增加前需要评估服务器的性能和资源使用情况。 综上所述,解决MySQL连接数过多的问题,一方面需要检查代码是否正确关闭连接,另一方面可以通过查询当前连接状态和最大连接数设置来评估并调整最大连接数限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄宝康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值