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 錯誤。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦