【问题标题】:MySQL connection handling issues in PHP/PDOPHP/PDO 中的 MySQL 连接处理问题
【发布时间】:2021-10-16 21:47:51
【问题描述】:

我已将我的 PHP 应用程序迁移到无服务器模型,其中云提供商限制了容器实例和 MySQL 服务器之间的活动连接数量。有时在一周内,每个容器实例超过 100 个活动连接到 MySQL 的限制。 PHP 中使用的 SQL 客户端库是 Medoo,是 PDO 的抽象,我们使用 PHP 7.3 和 Slim Framework 3。

检查 SHOW PROCESSLIST 时;从 MySQL 服务器中,可以看到几个已经旧的连接并且处于睡眠状态,为什么它们没有关闭?根据 PDO 文档,PHP 在完成脚本时关闭 MySQL 连接,在这种“结束脚本”条件下是否有任何异常?剧本什么时候结束?是否有一些 Apache 或 PHP 配置可以避免这种情况并导致问题?

在将您(读者)与问题联系起来之后。我的问题是:什么可能导致这种情况? PHP 或 Apache 中是否有任何可能与该问题相关的配置?代码中应该注意什么?你会尝试什么?

不,我们还没有设置持久连接。

【问题讨论】:

  • 这取决于您的架构,我想您可以在脚本末尾显式关闭连接。如果您到处都有多个连接对象,那很麻烦,但是如果您要传递单个(或少量托管)对象,那应该不会太难-看看这个答案stackoverflow.com/questions/18277233/pdo-closing-connection

标签: php mysql apache google-cloud-run slim-3


【解决方案1】:

很遗憾,PDO 没有任何配置连接限制的功能。

为了处理数据库连接,GCP 在它的official documentation 中提供了一些管理它的好习惯。

总的来说,我建议尝试以下方法:

【讨论】:

    猜你喜欢
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 2020-08-10
    • 2010-12-26
    • 2020-02-29
    相关资源
    最近更新 更多