首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何终止MySQL连接

如何终止MySQL连接
EN

Stack Overflow用户
提问于 2011-02-08 19:34:38
回答 6查看 206K关注 0票数 62

我正在和MySQL一起建一个网站。我正在使用TOAD for MySQL,突然我无法连接到数据库,因为我收到了一个错误:

"Too many“

在Toad for MySQL中,有没有什么方法可以查看现有的连接,从而能够终止它们或简单地将所有连接一起关闭?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-02-08 20:29:34

没有,没有内置的MySQL命令。有各种各样的工具和脚本支持它,你可以手动终止一些连接或重新启动服务器(但这样会更慢)。

使用SHOW PROCESSLIST查看所有连接,然后使用KILL命令删除要终止的进程ID。

您可以编辑超时设置,让MySQL守护进程自行终止非活动进程,或者增加连接计数。您甚至可以对每个用户名的连接数量进行限制,这样,如果进程继续行为不佳,唯一受影响的进程就是该进程本身,并且数据库上的其他客户端也不会被锁定。

如果您不能再连接到服务器,您应该知道MySQL总是为具有SUPER privilege的用户保留一个额外的连接。除非您的违规进程出于某种原因使用了具有该权限的用户名...

然后,在你可以再次访问你的数据库之后,你应该修复产生那么多连接的进程(网站)。

票数 101
EN

Stack Overflow用户

发布于 2015-06-19 15:36:36

代码语言:javascript
复制
mysql> SHOW PROCESSLIST;
+-----+------+-----------------+------+---------+------+-------+---------------+
| Id  | User | Host            | db   | Command | Time | State | Info      |
+-----+------+-----------------+------+---------+------+-------+----------------+
| 143 | root | localhost:61179 | cds  | Query   |    0 | init  | SHOW PROCESSLIST |
| 192 | root | localhost:53793 | cds  | Sleep   |    4 |       | NULL      |
+-----+------+-----------------+------+---------+------+-------+----------------+
2 rows in set (0.00 sec)

mysql> KILL 192;
Query OK, 0 rows affected (0.00 sec)

用户192 :

代码语言:javascript
复制
mysql> SELECT * FROM exept;
+----+
| id |
+----+
|  1 |
+----+
1 row in set (0.00 sec)

mysql> SELECT * FROM exept;
ERROR 2013 (HY000): Lost connection to MySQL server during query
票数 49
EN

Stack Overflow用户

发布于 2019-10-26 19:43:59

虽然你不能用一条命令杀死所有打开的连接,但如果有太多的手工操作,你可以创建一组查询来帮你做这件事。

此示例将为所有从192.168.1.1my_dbsome_user连接创建一系列KILL <pid>;查询。

代码语言:javascript
复制
SELECT 
CONCAT('KILL ', id, ';') 
FROM INFORMATION_SCHEMA.PROCESSLIST 
WHERE `User` = 'some_user' 
AND `Host` = '192.168.1.1'
AND `db` = 'my_db';
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4932503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档