Hello! 欢迎来到小浪云!


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


avatar
小浪云 2024-11-08 96

`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 服务器之间的连接在一段时间不活动后被服务器关闭。当脚本尝试通过这个已关闭的连接执行查询时,就会触发错误。

解决方法

立即学习PHP免费学习笔记(深入)”;

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

  • 调整 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 服务器之间的稳定连接。

相关阅读