PHP脚本反复出现“send of xxx bytes failed with errno=32 Broken pipe”错误怎么办?
php脚本反复出现“send of xxx bytes failed with errno=32 broken pipe”错误
在使用php脚本时,经常会遇到类似“mysqli_query(): send of 309 bytes failed with errno=32 broken pipe”这样的错误。虽然有人建议通过设置max_allowed_packet来解决,但对于没有超过该设置值的情况,问题可能另有原因。
错误原因
broken pipe错误通常是由于php脚本与mysql服务器之间的连接在长时间无操作后被服务器关闭导致的。当脚本再次尝试通过该已关闭连接执行查询时,就会出现该错误。
解决方案
要解决此问题,可以尝试以下方法:
-
调整mysql服务器的wait_timeout参数:该参数决定了非交互式连接在无活动后多久会被关闭。根据需要将其设置得更大,例如:
if (!mysqli_ping($conn)) { // 断开连接 mysqli_close($conn); // 重新连接 $conn = mysqli_connect($host, $user, $password, $database); }
注意,需要使用自己的数据库连接信息替换 $host、$user、$password 和 $database 变量。
通过调整这些设置,可以在避免遇到 broken pipe 错误。
以上就是PHP脚本反复出现“send of xxx bytes failed with errno=32 Broken pipe”错误怎么办?的详细内容,更多请关注其它相关文章!