ホームページ >バックエンド開発 >PHPチュートリアル >60 秒後に発生する MySQL サーバーのタイムアウトをトラブルシューティングするにはどうすればよいですか?
60 秒後の MySQL サーバーのタイムアウト: トラブルシューティング
MySQL では、「MySQL サーバーが消えました - まさに60秒です。」この問題は、クエリの実行中にタイムアウトが発生し、予期しないクロージャで終了した場合に発生します。効率を高めるためにクエリを最適化することは重要ですが、夜間に実行するように設計された低速のクエリであっても、この問題は残ります。
調査すると、クエリは一貫して正確に 60 秒でタイムアウトすることがわかりました。この特異な動作は、リソースの制限ではなく構成の問題を示唆しています。
この問題を解決するには、考えられる原因を詳しく調べてみましょう。
1. PHP 構成:
PHP 構成設定「mysql.connect_timeout」は、このエラーで重要な役割を果たします。これは、接続タイムアウトだけでなく、サーバーから最初の応答を受信するまでの期間も制御します。デフォルトでは、このタイムアウトは 60 秒に設定されています。
解決策:
このタイムアウトを延長するには、次の PHP コードを実装します:
ini_set('mysql.connect_timeout', 300); ini_set('default_socket_timeout', 300);
この変更により、サーバーからの応答を 300 秒待つように PHP に指示し、遅いクエリが完了するのに十分な時間を提供します。
2.データベース構成:
もう 1 つの潜在的な原因は、サーバーが接続を終了するまでに待機する時間を決定する MySQL 構成変数「wait_timeout」です。この値がワークロードに適切に設定されていることを確認してください。
解決策:
必要に応じて、MySQL 構成ファイルの「wait_timeout」を次のようなより高い値に調整します。 28800 (8 時間)。
3.その他の要因:
タイムアウトの原因となる可能性のあるその他の要因には、ネットワーク遅延、ファイアウォール設定、サーバー負荷などがあります。関連するすべてのコンポーネントを徹底的に確認して、外部の影響を排除します。
これらのトラブルシューティング手法を採用することで、問題を解決し、「MySQL サーバーが消えました」エラーの再発を防ぐことができます。
以上が60 秒後に発生する MySQL サーバーのタイムアウトをトラブルシューティングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。