2014-01-18 63 views
2

我收到以下错误在我的脚本:mysqli太多连接(HY000/1040)和(08004/1040)是否有区别?

mysqli_connect(): (08004/1040): Too many connections 
mysqli_connect(): (HY000/1040): Too many connections 

的区别是什么,我该如何解决这个问题?

+0

“我该如何解决这个问题” - 找出他们为什么会比他们死得更快? –

+1

您可能需要增加max_connections – user1844933

+0

您可以在本主题中编辑flag config pconnect的值。 http://stackoverflow.com/a/42992918/7760664 –

回答

3

"Too many connections"表示您的脚本至少打开了多个到数据库的连接。基本上,对于一台服务器,只需要一个连接。得到这个错误或者是服务器配置错误(我认为情况并非如此,因为max connections =零不是选项),或者脚本中存在一些编程错误。

检查重新打开数据库连接(mysqli_connect)。应该只有一个脚本(!),并且通常应该重新使用打开的连接或在脚本执行后正确关闭它们(mysqli_close

1

尽管我无法告诉您上述两个错误号之间的差异,可以告诉你是什么原因造成的。

您的MySQL数据库只允许同时连接这么多的连接。如果您通过PHP连接到MySQL,那么通常每次您的站点上的页面加载时都会打开一个新连接。所以,如果您的网站流量过多,可能会导致此问题。

我认为这是人们很普遍的一个连接到他们的数据库每页加载,并确保多个查询。所以真的什么它归结为是3点:

(让我告诉你,现在,永久连接不会解决你的问题。)

如果您可以访问您的服务器的CLI/SSH,尽量增加通过修改您的MySQL配置的限制(不要忘记重新启动服务以使更改生效)。这当然会消耗数据库服务器上的更多系统资源。

如果您有很多AJAX请求或其他内部数据库连接,您应该尝试通过一次调用将这些请求放到单个脚本中。您的网站可能会对各种PHP文件进行多次AJAX调用,这些文件会提取MySQL数据,这会为每个数据库连接使用一个完整的数据库连接。相反,创建一个PHP文件来收集您在给定页面上需要的所有数据,该脚本可以获取所需的全部数据,而只使用1个数据库连接。

相关问题