PDO を使用した PHP スクリプトで「MySQL Server Has Gone Away」エラーが発生しました
夜間タスクを実行するスクリプトで、PDO がステートメントを準備した問題が発生しています数回実行が成功した後、「MySQL サーバーが消えました」というエラーで失敗します。この問題の根本原因は、多くの場合、MySQL に設定されている最大許容パケット サイズを超えていることにあります。
解決策: サーバー構成を調整する
エラーを解決するには、次のことが必要です。 MySQL 構成ファイル (my.ini) の max_allowed_packet 設定を調整します。この設定では、サーバーが処理できるパケットの最大サイズを指定します。特定のシナリオでは、許可されているサイズより大きい BLOB を挿入しようとすると問題が発生する可能性があります。
エラー メッセージとロガー出力
この問題が発生すると、クライアント側で「MySQL サーバーが消えました」というエラー メッセージが表示されます。さらに、エラー ログが有効になっている場合、サーバー ログに次のエラーが含まれる場合があります:
Error 1153 Got a packet bigger than 'max_allowed_packet' bytes
構成調整
この問題を解決するには、最大のサイズを確認してください。 BLOB が挿入され、それに応じて my.ini に max_allowed_packet が設定されます。たとえば、最大の BLOB サイズが 200MB と推定される場合、構成は次のように調整できます:
[mysqld] ... max_allowed_packet = 200M ...
以上がPDO を使用する PHP スクリプトが、数回実行に成功した後も「MySQL サーバーが消えました」というエラーが発生し続けるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。