一部のデータ (通常は一度に約 200 ~ 300kb) を記録しようとするスクリプトがあります。かなり長い間、問題なく動作しています。MySQL サーバーまたは処理サーバー上の PHP に対して行われた構成変更については知りません。昨日、次のコード ブロックが誤動作し始めました。2 日前、「$sqlBucket」クエリは正常に機能しました。現在、失敗し、mysql_error は「MySQL サーバーが消えました」を返します。最初の if ブロックにデバッグを追加すると、次のように出力されます。
The Link Is Down
Link still down
コード:
if (!mysql_ping($conn)) {
echo "The Link Is Down!\n";
mysql_close($conn);
if (!($conn = mysql_connect($hostname,$username,$password))) echo "Fail " . $mysql_error() . "\n";
mysql_select_db($db,$conn);
if (!mysql_ping($conn)) echo "Link still down\n";
}
if (!mysql_query($sqlBucket, $conn)) {
echo "Could not execute: {$sqlBucket}" . mysql_error() . "\n";
}
誰かがチェック、デバッグ、再構成などについて何か考えがある場合、私はアイデアを使い果たしました。ありがとう。
編集:追加情報
スクリプトが実行され、約 3 秒で失敗します。
MySQL サーバーの wait_timeout 値は 28800 です。
コマンドラインからクエリを正常に送信できます。
mysql_connect 関数にチェックを追加し、成功を報告しています (少なくとも、出力に「失敗」は表示されません)。