gpt4 book ai didi

mysql资源暂时不可用

转载 作者:IT王子 更新时间:2023-10-29 00:30:35 27 4
gpt4 key购买 nike

我在高加载时间看到了一些这样的错误:

mysql_connect() [<a
href='function.mysql-connect'>function.mysql-connect</a>]: [2002] Resource
temporarily unavailable (trying to connect via
unix:///var/lib/mysql/mysql.sock)

据我所知,mysql 服务器没有达到其最大连接数限制,但还有其他原因阻止它为查询提供服务。 MySQL 还会达到哪些其他限制?

我正在运行 RHEL 6.2 64 位和 MySQL 5.5.21

最佳答案

让我们假设您的系统当前是基于 Unix 的(如您的问题陈述中所给出的)。如果这是正确的,那么您可能会遇到以下问题:

  1. 您已经用完了 memory可用于 MySQL。

    这是您最有可能遇到的问题。 MySQL 连接池中的每个连接都需要内存才能运行,如果此资源耗尽,则无法建立进一步的连接。当然,各种操作的内存占用和最大数据包大小可以在your equivalent to my.cnf中进行调整。如果您发现这是一个问题。

    Here's an additional thread that can help there ,但您也可以考虑使用更简单的分析工具(如 top)来大致估计正在发生的事情。

  2. 您已经用完了 file descriptors可供您的 MySQL 用户帐户使用。

    另一个常见问题:如果您尝试为需要超过 1,024 边界(默认情况下)的文件 IO 的请求提供服务,您将遇到操作完全失败的情况。这是因为大多数系统对每个用户一次可以打开的文件描述符的数量指定了软硬限制,超过这个阈值可能会导致问题。

    这通常会在您的日志文件中表达出一系列非常明显的迹象。检查 /var/log/messages 和您的可比目录(例如,/var/log/mysql,看看您是否能找到任何有趣的东西。

  3. 您遇到了 livelock or deadlock您的线程无法满足的场景。

    内存和文件描述符耗尽的必然结果是,如果您超出了系统能够处理的计算负载,线程可能会超时。它不会抛出此错误消息,但这是 future 需要注意的事情。

  4. 您的系统可用的 PID 已用完 fork .

    另一种常见情况:fork 在任何给定时间只有这么多 PID 可供使用。如果您的系统只是 overforked ,它将不再能够为请求提供服务。

    对此最简单的检查是查看是否有任何其他服务可以连接到机器。例如,尝试通过 SSH 进入盒子并发现你不能是一个大线索。

  5. 上游代理或连接管理器已耗尽资源并停止为请求提供服务。

    如果您的客户端和 MySQL 之间有任何服务层,则需要检查它是否崩溃、挂起或以其他方式变得不稳定。以上建议适用。

  6. 你的端口映射器已经耗尽了自己after 65,536 connections .

    不太可能,但又一次,可能是用尽的情况。像上面那样检查简单的服务连接,嗯,也是这里最好的停靠点。

简而言之:这是一种资源耗尽的情况,包括服务器只是“停机”。您将不得不进一步分析您的系统以查看您在阻止什么。在这种情况下,所有错误消息都告诉我们资源对客户端不可用——我们需要查看有关服务器的更多信息以确定更充分的补救措施。

关于mysql资源暂时不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10131615/

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