我打开了太多与 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
您有以下三种选择:
开始 -> 运行 -> Services.msc
找到 MySQL,右键点击并选择重新启动开始->运行->CMD
net stop MySQL enter
net start MySQLenter- 终止任务面板中 mySQLd.exe 的所有实例。(不推荐)
答案3
如果您可以访问您的服务器,请重新启动 mysql。如果您无法访问您的服务器,只需等待。
答案4
我解决了!这是 C# 代码中的一个错误,我无意中循环了“connection.Open()”。-.-
Class1 说“嘿 Class2,打开连接!”然后 Class2 回答“连接已打开!现在打开一个连接,Class1!”。然后 Class1 打开一个连接并对 Class2 说“也打开一个连接!”然后就这样……
我很抱歉我太笨了,我只是还没意识到这一点 -.-
困了 3 天 (Y)
干杯!