【问题标题】:MySQL Too many connections error using Laravel 5.4MySQL 使用 Laravel 5.4 的连接数过多错误
【发布时间】:2018-11-01 14:03:48
【问题描述】:

我有一个在共享主机 (a2hosting) 上运行的 Laravel 5.4 Web 应用程序,并且不时出现SQLSTATE[08004][1040] Too many connections 错误。有时需要几分钟才能重新开始工作,有时需要几个小时。

我已经尝试了几种方法来诊断问题并尝试解决它,但到目前为止没有任何效果。

max_connections 设置为 500,wait_timeout 设置为 8 小时。

如果我在错误仍然弹出时登录 mysql cli 并列出它显示的活动进程不超过 10 ~ 15 个进程。

此外,该系统仅由大约 30 人使用,所以我不知道为什么可以达到最大连接数(也许 php 出于某种原因没有关闭某些连接?)。

有没有人遇到过这样的错误?如果是这样,你做了什么来解决它? 还有关于什么可能导致错误以及如何预防/修复它的任何想法?

如果可以帮助诊断问题,我可以提供有关我的 laravel 应用、数据库和服务器的更多信息。

【问题讨论】:

标签: mysql database laravel mariadb


【解决方案1】:

可能的原因:

  • “连接池”已打开(某处),并且设置得太高。
  • Web 服务器的“孩子”太多;降低其限制。
  • 可能存在需要优化的“慢”查询。
  • 连接完成后无法“断开连接”。
  • 减少,而不是增加,wait_timeout
  • 有多个wait_timeout设置;你改错了。
  • 增加同时连接的数量可能会使整体性能变差。

【讨论】:

    猜你喜欢
    • 2017-10-30
    • 2012-12-29
    • 1970-01-01
    • 2017-10-03
    • 2020-09-03
    • 1970-01-01
    • 2011-06-29
    • 2018-12-06
    • 1970-01-01
    相关资源
    最近更新 更多