ホームページ >バックエンド開発 >PHPチュートリアル >以前は正常に実行されていた MySQL クエリが 60 秒後にタイムアウトになるのはなぜですか?

以前は正常に実行されていた MySQL クエリが 60 秒後にタイムアウトになるのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-18 22:12:03611ブラウズ

Why does a MySQL query now time out after 60 seconds when it used to execute successfully?

MySQL サーバーの 60 秒のタイムアウトの問題

この記事では、以前は成功していた MySQL クエリが 60 秒後にタイムアウトになる問題について説明します。 、「MySQL サーバーが消えました」というエラー メッセージが表示されます。クエリ自体は遅いですが、常に夜間のジョブの一部であり、最近まで問題が発生したことはありません。

問題の症状

  • クエリタイムアウトする前にちょうど 60 秒間停止します。
  • この問題は、ステートメント「SELECT SLEEP(120);」を実行することで再現できます。
  • MySQL クライアントから実行すると、同じステートメントが正常に実行されます。
  • 「wait_timeout」変数を 28800 秒に調整しても、問題は解決されません。

考えられる原因

  • 問題は常に 60 秒ちょうどでタイムアウトするため、CPU やメモリなどの限られたリソースが原因である可能性は考えられません。
  • A潜在的な原因は、リソースの制限ではなく、誤った設定である可能性があります。

トラブルシューティング

デフォルトの PHP 設定「mysql.connect_timeout」がルートであることが判明しました。問題の。この設定は、接続タイムアウトだけでなく、サーバーの初期応答の待機時間も制御します。

解決策

待機時間を増やすには、次の PHP 構成を使用できます。 used:

ini_set('mysql.connect_timeout', 300);
ini_set('default_socket_timeout', 300); 

この変更により、待機時間が指定された値まで増加し、タイムアウトせずにクエリを完了できるようになります。

以上が以前は正常に実行されていた MySQL クエリが 60 秒後にタイムアウトになるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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