PHP / mySQL:如何调试“连接过多”错误?


8

我现在正在客户专用服务器上的PHP网站上工作,我会定期收到错误消息,too many connections但是大约有5位用户正在浏览此页面。

phpMyAdmin我可以看到该max connections变量设置为400

在我公司的本地MySQL服务器上,我们已max connections设置为200和其他伙伴同时使用该服务器。

我听说在他们的服务器上,其他一些网站正在使用相同的MySQL,且流量大。

这是我的问题:

  • 如何调试这个问题?
  • 我可以查看过去10分钟内执行的一些SQL查询列表,以检查这是我们的问题还是它们的问题?

Answers:


2

您描述的症状表明持续连接。在某些设置中,PHP无法很好地处理持久连接:它倾向于打开新连接,而不是重用现有连接。建议您禁用此功能,然后查看问题是否仍然存在:

如果发现有改进,可以尝试微调持久性呼叫或永久摆脱它们。


我也开枪。我根本无法修改其Web /服务器配置以进行更改(我的Web在persistent connections任何地方都不使用)。明天我要去见他们的男人,我要他们去做。
hsz 2010年

这不需要修改任何服务器配置。您只需要更新应用程序的PHP脚本。
Michael Mior 2010年

可以,但是我无法访问也使用同一MySql服务器的第二个网页-因此,我无法更新其可能使用的PHP脚本mysql_pconnectphpinfo()告诉我mysql.allow_persistent是On。将该标志更改为Off不会有任何结果-应该在其计算机上进行更改。
hsz 2010年

他们更改mysql.allow_persistentOff,我们的CMS加速了,现在连接没有问题。谢谢!但是我仍然想知道如何检查与MySql服务器连接的脚本是什么?
hsz 2010年

SHOW PROCESSLIST告诉您用户,主机,数据库和(如果您幸运的话)查询。
阿尔瓦罗·冈萨雷斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.