【问题标题】:Mysqli::real_connect() broken pipe every 24 hoursMysqli::real_connect() 每 24 小时断开一次管道
【发布时间】:2016-11-15 09:29:16
【问题描述】:

我有一个 PHP 应用程序在 NGINX 上的 Ubuntu 服务器上运行。

大约每 24 小时,我会收到此错误:

mysqli::real_connect(): 发送 73 字节失败,errno=32 Broken pipe

我的解决方案是重新启动。重启nginx,mysql服务并没有解决问题。

这是过去 4 天一直发生的事情。每天早上我醒来,尝试打开我的网站,我都会收到这个错误。

注意: 如果我尝试使用管理员或 DataGrip 连接到数据库,它工作正常。但是由于某种原因,PHP 得到了这个错误。

【问题讨论】:

  • 你的mysql连接是否一直保持活跃?
  • 没有。我为每个新请求打开一个连接
  • 能看看mysql的日志文件有没有报错信息吗?
  • 能否请您发布您尝试连接到数据库的代码?
  • @weigreen 除了正常关机说明外,日志文件中没有任何内容

标签: php mysql nginx mysqli


【解决方案1】:

在线快速搜索,但似乎没有任何与此相关的已知错误。这样就只剩下几个选项了,其中网络或服务器问题是最有可能出现的两个问题。

在任何一种情况下,这都与 PHP 代码无关,您应该能够在服务器上的 mysql.err 文件中找到更多信息。
或者,您也可以联系您的主机,让他们检查是否存在网络连接问题。

“管道损坏”错误的另一个常见原因是在使用mysqldump 并且磁盘已满时。不确定它与这种情况有多相关,但也值得检查任何与磁盘相关的问题。

【讨论】:

  • 又发生了。现在我没有重新启动,而是查看了日志。没什么可怕的。我让系统人员查看日志:“我第一次看到这个错误。看起来没什么可疑的”还有其他建议吗?
【解决方案2】:

使用 CodeIgniter,在数据库配置中你有“pconnect”。如果设置为 true,则可能会出现此类问题。

修复

config/database.php 数据库配置参数pconnect 设置为FALSE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-24
    • 2012-09-02
    • 2020-09-11
    • 2021-01-09
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多