MySQL 连接中的“尝试失败”

Posted

技术标签:

【中文标题】MySQL 连接中的“尝试失败”【英文标题】:"Failed Attempt" in MySQL Connection 【发布时间】:2011-10-08 03:33:32 【问题描述】:

我对 mysql 连接感到困惑。我的网站在工作时间收到大量请求。我使用 php 通过持久连接连接到 MySQL 数据库。 几周前,我将 mysql 连接数增加到 500,这导致我的服务器崩溃,然后我将其恢复到 150。 现在用户抱怨有时他们无法访问该网站。我认为这是由于连接有限。

您能否给我一些关于我使用持久性还是非持久性的信息?我需要调整 mysql 的哪些部分以获得优化的连接处理? 我附上了显示 11K 失败尝试的屏幕截图。 http://i.stack.imgur.com/GkxHP.jpg

非常感谢...

2011 年 12 月 17 日更新

当我问这个问题时,我将连接类型更改为“非持久”,一切都开始正常工作。今天我惊讶地看到来自 phpmyadmin 的统计数据。以下是 Phpmyadmin 给出的值:

max. concurrent connections :: 16
Failed Attempts :: 43k

请提出一些可能的解决方案?应该优化哪个参数来避免/最小化失败的尝试?

【问题讨论】:

显然“尝试失败”是因为您的站点已达到最大可能连接数。现在的问题是,为什么当您将其设置为最大连接数 500 时它会崩溃?? 谢谢疯猫。这意味着高流量站点不应使用持久连接,因为在这种情况下可用的连接有限。也不知道为什么会崩溃。但这是我在崩溃前所做的唯一改变。 @D3K,你是怎么解决这个问题的? @Suriya,我将连接类型设置为“非持久”并将连接数从 150 增加到 500。现在失败的尝试要低得多 :-) @D3K,谢谢。通过增加连接,你升级你的内存了吗?我有一台 8G 机器。 【参考方案1】:

高流量网站不应使用持久连接。我在php中将数据库连接从持久更改为非持久,问题解决了! 感谢您的帮助。

编辑: 将连接类型更改为非持久后,不要忘记增加连接数。就我而言,我将它们增加到 500,并将类型设置为非持久,这解决了问题。

【讨论】:

以上是关于MySQL 连接中的“尝试失败”的主要内容,如果未能解决你的问题,请参考以下文章

如何解决“连接尝试失败,因为连接方在一段时间后没有正确响应......”错误?

连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败

svn checkout 提示“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。”解决方法

svn checkout 提示“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。”解决方法

Websocket 连接尝试失败,返回“连接:升级,关闭”。

重用异步套接字:后续连接尝试失败