我的 SQL 错误:连接数过多

我的 SQL 错误:连接数过多

我的网站一直显示与数据库相关的错误。

错误提示为——警告:mysql_connect()[function.mysql-connect]:/home/host1/public_html/www.mysite.com/db_connection.php 第 2 行连接数过多。无法连接错误。连接数过多。

我偶尔会收到错误,但当我刷新页面,比如说 20 秒后,错误消失,页面正常显示。我尝试通过在页面加载完成后输入代码来关闭 SQL 连接来纠正此问题。但即使在那之后,我仍然收到此错误。您能告诉我们可能出了什么问题吗?是服务器问题还是与我的代码有关?

答案1

需要检查以下几件事:

您是否使用 mysql_pconnect 连接数据库?这将创建一个持久连接,该连接一旦建立便保持打开状态,并将重新使用该连接,而不是每次都创建新的数据库连接。

还要检查 my.cnf 文件中的 max_connections 和 max_user_connections,因为您可能达到这两个变量中设置的限制。

答案2

如果你运行此查询:

SHOW PROCESSLIST;

您将看到当前所有连接都处于打开状态,以及它们正在执行的操作。这应该可以让您更好地了解是什么阻碍了事情的发展。随着时间的推移,连接可能会卡住,并且它们可能会在那里停留很长时间。但更有可能的是,您的脚本被黑客入侵(或编写不当的脚本导致大量锁定)。

答案3

你可能没有在 php 脚本中关闭连接。使用mysql_close(),明确关闭连接。将 mysql_close() 与 mysql_connect() 结合使用可确保关闭连接。

答案4

如果查询完成后您成功关闭连接,则尝试增加 my.cnf 中的 max_connections。

MySQL 管理员GUI 工具包可能会让你知道正在发生什么。

相关内容