我现在正在客户的专用服务器上使用 PHP 网站,有时会收到错误,too many connections
但大约有 5 个用户正在浏览此页面。
在phpMyAdmin
我可以看到该max connections
变量被设置为400
。
在我们公司的本地 MySQL 服务器上,我们已将max connections
其设置为200
其他伙伴同时使用该服务器。
我听说在他们的服务器上其他一些网站也使用相同的 MySQL,但流量很大。
以下是我的问题:
- 如何调试这个问题?
- 我可以查看过去 10 分钟内执行的一些 SQL 查询列表来检查这是我们的问题还是他们的问题吗?
答案1
您描述的症状指向持久连接。在某些设置中,PHP 不能很好地处理持久连接:它倾向于打开新连接而不是重用现有连接。我建议您禁用此功能,然后查看问题是否仍然存在:
- 在代码级别:找到对mysql_pconnect()并将其替换为mysql_connect()。
- 在配置级别:找到mysql.allow_persistent指令并将其设置为 false。
如果您注意到有所改善,您可以尝试微调持续呼叫或永久摆脱它们。