gpt4 book ai didi

php - MySQL 连接在 PHP 中意外失败

转载 作者:行者123 更新时间:2023-11-29 02:35:53 25 4
gpt4 key购买 nike

我们在服务器上发现 MySQL 连接问题。奇怪的是,这个问题只是偶尔出现一次,大概100次中有1次,而且似乎在我们的服务器负载很重的时候出现得更频繁。以前,当我们的用户少得多时,我们永远不会看到此错误。

错误来自这行代码:

$myconnection = mysql_pconnect($hostname_myconnection, $username_myconnection, $password_myconnection) or trigger_error(mysql_error(),E_USER_ERROR);

抛出的错误是:

Warning: mysql_pconnect() [function.mysql-pconnect]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (11) in/home/john/web/htdocs/lib/myconnection.php on line 11

在同一个文件中我们还建立了另一个MySQL连接,它基于 Zend Db Adapter:

$db = new Zend_Db_Adapter_Mysqli($data);

我们同时使用这两个连接。

我的问题是:这个错误从何而来?是否会因为太多人同时尝试建立连接而触发错误?如果是这种情况,我们应该更改 httpd.conf 或 my.cnf 中的哪些设置?或者我们为每个用户建立两个连接是一个问题吗?

最佳答案

我看到您正在使用持久连接,所以这应该不是问题。我怀疑您的 PHP 没有使用持久连接编译,并且 mysql_connect 在后台调用而不是它的持久连接。

所有系统对打开的套接字和文件都有限制,如果您在页面加载期间实例化许多连接并且持久功能不起作用,它们每个都会占用一个新的套接字。

您还应该考虑手动关闭连接,因为即使在客户端按下取消按钮后,PHP 脚本仍会运行几秒钟,而清理(关闭连接)可能需要一段时间。

关于php - MySQL 连接在 PHP 中意外失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5180608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com