当前位置:  开发笔记 > 编程语言 > 正文

如何修复:mysql_connect():连接太多

如何解决《如何修复:mysql_connect():连接太多》经验,为你挑选了2个好方法。

我收到以下错误:

mysql_connect(): Too many connections

它完全关闭了我的网站,该网站已经无缝运行了好几年.

注意:我与GoDaddy共享托管.

我该如何解决?

另外:有没有办法在共享主机方案上关闭所有连接并重新启动?



1> christianpar..:

这是技术响应

当mysql服务器达到其最大并发客户端连接的软件可配置假设限制时,连接到mysql时会出现"太多连接"错误.

所以,解决这个问题的正确方法是:

    直接连接到mySQL服务器(通过localhost),并执行查询:SET GLOBAL max_connections = 1024;在运行时更改连接限制(无停机时间).

    使您的更改成为永久更改,并编辑/etc/mysql/my.cnf(或类似)并max_connections = 1024在该[mysqld]部分中添加行内容; 如果您无法进行实时更改,请重新启动.

选择的1024的限制是纯主观的; 使用你想要的任何限制.您还可以通过查询检查当前限制SHOW VARIABLES LIKE "max_connections";.请记住,这些限制是有用的,以防止后端数据库不必要的过载.所以总是选择明智的限制.

但是,对于这些步骤,您需要直接访问数据库mySQL服务器.

如你所说,你正在使用Godaddy(我不太了解它们),你可以选择联系你的服务提供商(即Godaddy).但是,无论如何,他们也会在他们的日志中看到这一点.

可能的根本原因

这当然意味着,太多客户端正在尝试同时连接到mySQL服务器 - 从每个配置指定的人工软件限制.



2> Quassnoi..:

最有可能的是,你一直是DDoS攻击的对象.

这个论坛上的人们完全相同的提供者抱怨完全一样.

答案是这样的:

VB告诉我这是DOS攻击 - 这是他们的消息:

这不是'漏洞'.这是DoS攻击(拒绝服务).不幸的是,我们无能为力.DoS攻击只能在服务器或路由器级别进行,这是您的主机的责任.他们决定采取简单的方法暂停您的帐户,而不是这样做.

如果你不能让他们认真对待,那么你应该寻找另一个主持人.关于这些坏消息我很遗憾.

可能的解决方法是:如果连接失败mysql_connect(): Too many connections,则不退出,而是退出sleep()半秒并尝试再次连接,并仅在10尝试失败时退出.

这不是解决方案,而是一种解决方法.

这当然会延迟你的页面加载,但它比一个丑陋的too many connections消息更好.

您还可以使用某种方法来告诉机器人和浏览器.

比如,设置一个盐渍SHA1cookie,重定向到同一页面,然后检查该cookie并MySQL仅在用户代理通过测试时才连接.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有