php 脚本出现 mysqli_query() broken pipe 错误的原因和解决方法
你在使用 php 编写常驻内存队列处理脚本时遇到了 mysqli_query() 错误,提示 broken pipe。这表明服务器与数据库之间的连接中断。
造成此错误的原因可能是服务器端关闭了连接,因为脚本长时间处于无操作状态。虽然你已调整 max_allowed_packet 参数,但这似乎并不是问题的根源。
解决方案:
立即学习“PHP免费学习笔记(深入)”;
-
检查并调整 wait_timeout 参数:
-
登录 mysql 服务器并使用以下命令检查 wait_timeout 参数的当前设置:
show variables like 'wait_timeout';
- 将 wait_timeout 值增加到一个更合适的时间,例如 600 秒。
-
-
处理连接断开:
-
在你的 php 脚本中,添加代码来处理连接断开:
if (!mysqli_ping($conn)) { // 断开连接 mysqli_close($conn); // 重新连接 $conn = mysqli_connect($host, $user, $password, $database); }
请注意:替换 $host、$user、$password 和 $database 变量为你的数据库连接信息。
-
-
其他建议:
- 确保数据库服务器和 php 脚本运行在同一台机器上。
- 检查你的网络连接是否存在问题。
- 尝试使用不同的 mysql 客户端(例如 mysql 命令行工具)。
通过调整这些设置,你应该能够避免 broken pipe 错误。
以上就是PHP 脚本出现 mysqli_query() Broken Pipe 错误:如何解决连接中断问题?的详细内容,更多请关注php中文网其它相关文章!