ホームページ  >  記事  >  データベース  >  PDO を使用する PHP スクリプトが、数回実行に成功した後も「MySQL サーバーが消えました」というエラーが発生し続けるのはなぜですか?

PDO を使用する PHP スクリプトが、数回実行に成功した後も「MySQL サーバーが消えました」というエラーが発生し続けるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-21 08:23:12333ブラウズ

Why does my PHP script using PDO keep getting a

PDO を使用した PHP スクリプトで「MySQL Server Has Gone Away」エラーが発生しました

夜間タスクを実行するスクリプトで、PDO がステートメントを準備した問題が発生しています数回実行が成功した後、「MySQL サーバーが消えました」というエラーで失敗します。この問題の根本原因は、多くの場合、MySQL に設定されている最大許容パケット サイズを超えていることにあります。

解決策: サーバー構成を調整する

エラーを解決するには、次のことが必要です。 MySQL 構成ファイル (my.ini) の max_allowed_pa​​cket 設定を調整します。この設定では、サーバーが処理できるパケットの最大サイズを指定します。特定のシナリオでは、許可されているサイズより大きい BLOB を挿入しようとすると問題が発生する可能性があります。

エラー メッセージとロガー出力

この問題が発生すると、クライアント側で「MySQL サーバーが消えました」というエラー メッセージが表示されます。さらに、エラー ログが有効になっている場合、サーバー ログに次のエラーが含まれる場合があります:

Error 1153 Got a packet bigger than 'max_allowed_packet' bytes

構成調整

この問題を解決するには、最大のサイズを確認してください。 BLOB が挿入され、それに応じて my.ini に max_allowed_pa​​cket が設定されます。たとえば、最大の BLOB サイズが 200MB と推定される場合、構成は次のように調整できます:

[mysqld]
...
max_allowed_packet = 200M
...

以上がPDO を使用する PHP スクリプトが、数回実行に成功した後も「MySQL サーバーが消えました」というエラーが発生し続けるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。