如何才能批量终止与 MySQL 的连接?

如何才能批量终止与 MySQL 的连接?

我打开了太多与 MySQL 的连接,现在无法访问它。它显示“连接太多”。我该如何关闭所有这些连接?我也不知道如何重新启动它,这可能会解决问题。

答案1

我在DBA StackExchange2011 年 5 月。

在如此紧张的情况下,什么能让一个人登录 mysql?答案很简单:不要给每个人超级权限!

为什么享有超级特权?

根据MySQL 文档

SUPER 权限使账户能够使用 CHANGE MASTER TO、KILL 或 mysqladmin kill 来杀死属于其他账户的线程(您总是可以杀死自己的线程)、PURGE BINARY LOGS、使用 SET GLOBAL 修改全局系统变量来更改配置、mysqladmin 调试命令、启用或禁用日志记录、即使启用了 read_only 系统变量也可以执行更新、启动和停止从属服务器上的复制、在存储程序和视图的 DEFINER 属性中指定任何账户,并且即使达到由 max_connections 系统变量控制的连接限制,您也可以连接(一次)。

鉴于此,常规客户端连接不应具有 SUPER 权限。一旦数据库连接数达到 =最大连接数,只允许再建立一个连接,并且该连接必须具有 SUPER 权限。如果每个人和他的祖母都具有 SUPER 权限,则一切都将失败,没有人可以登录。

答案2

您有以下三种选择:

  1. 开始 -> 运行 -> Services.msc
    找到 MySQL,右键点击并选择重新启动

  2. 开始->运行->CMD
    net stop MySQL enter
    net start MySQLenter

  3. 终止任务面板中 mySQLd.exe 的所有实例。(不推荐)

答案3

如果您可以访问您的服务器,请重新启动 mysql。如果您无法访问您的服务器,只需等待。

答案4

我解决了!这是 C# 代码中的一个错误,我无意中循环了“connection.Open()”。-.-

Class1 说“嘿 Class2,打开连接!”然后 Class2 回答“连接已打开!现在打开一个连接,Class1!”。然后 Class1 打开一个连接并对 Class2 说“也打开一个连接!”然后就这样……

我很抱歉我太笨了,我只是还没意识到这一点 -.-

困了 3 天 (Y)

干杯!

相关内容