`mysqli_query` 报错“Broken pipe”:如何解决 PHP 连接 MySQL 服务器断开的问题?

`mysqli_query` 报错“Broken pipe”:如何解决 PHP 连接 MySQL 服务器断开的问题?

mysqli_query 报 mysql 连接断开的处理方法

在使用 php 脚本连接 mysql 服务器时,可能会遇到 mysqli_query(): send of xx bytes failed with errno=32 broken pipe 的错误。其中,xx 代表发送的字节数。尽管尝试增大 max_allowed_packet 参数,但问题仍然存在。

错误原因

此错误通常表明 php 脚本与 mysql 服务器之间的连接在一段时间不活动后被服务器关闭。当脚本尝试通过这个已关闭的连接执行查询时,就会触发错误。

解决方法

为了解决此问题,可以采取以下步骤:

  • 调整 mysql 服务器的 wait_timeout 参数:此参数指定非交互式连接在不活动后被关闭所需的时间。将其设置为较大值,如:
set wait_timeout = 3600;
  • 检查连接是否断开:在执行查询之前,检查连接是否仍然活动,并重新连接已关闭的连接:
if (!mysqli_ping($conn)) {
    // 断开连接
    mysqli_close($conn);

    // 重新连接
    $conn = mysqli_connect($host, $user, $password, $database);
}

通过进行这些调整,可以防止 broken pipe 错误的发生,确保 php 脚本与 mysql 服务器之间的稳定连接。

以上就是`mysqli_query` 报错“Broken pipe”:如何解决 PHP 连接 MySQL 服务器断开的问题?的详细内容,更多请关注其它相关文章!