2010-03-23 106 views
1

即时通讯希望有人可以帮我快速解决我的问题。php数据库连接错误

由于现场我已经构建偶尔与错误返回

警告:mysqli的:: mysqli的()[mysqli.mysqli]:(08004/1040):在

警告连接太多:mysqli的::查询()[mysqli.query]:无法取得mysqli在

现在起初我认为这是发生,页面/脚本的开头

$ conn = n ew mysqli($ host,$ username,$ password,$ database);

并在最后呼吁

$ conn-> close();

另外,我关闭了任何已打开的结果集。

在我今天访问网站的时候看到我的日志文件,看到这个错误,我访问了大约12点的时间,起初页面不会加载,然后它给了我这个错误。在此之前,一个人在11点30分左右,然后在10点30分左右,不是很大的交通。

我去过的主人很安静,没有办法与他们取得联系,并且忽略任何支持邮件,我想也许现在我听说他们不是很好,这可能是一个问题严重设置共享mysql服务器?

任何想法或建议将是惊人的,因为我需要解决这个问题!

在此先感谢!

回答

4

听起来好像MySQL服务器被太多帐户共享,因为这个错误意味着服务器的max_connections设置已被超出。这可能是有几个其他高流量的客户正在占用连接(这是一个共享的MySQL服务器,我拿它?)

我很确信PHP自动关闭资源在请求(尽管总是最好明确地关闭你的连接等),所以我不认为这是你的脚本保持连接打开。

您需要继续保留在您的托管服务提供商处,恐怕还是考虑移动提供商。还要记录错误发生的时间和时间,因为如果他们拒绝承认有问题,您需要将其作为证据。

您也可以引用您的提供者到本页面:http://dev.mysql.com/doc/refman/5.1/en/too-many-connections.html

+0

感谢您的回复......所以你不认为它是我的错! :) – Dori 2010-03-23 12:08:43

+0

它并未出现如此。如果您与您的提供商联系,请告诉他们检查针对MySQL服务器运行“SHOW PROCESSLIST”的结果 - 它会显示哪些连接来自哪个服务器。 – 2010-03-23 12:10:41

+0

也只是检查你的脚本是不是创建持久连接 - 确保你的主机名不会以'p:'开头(除非你想持续连接,但是你真的必须检查连接是否正确关闭/处置。) – 2010-03-23 12:13:13