ホームページ  >  記事  >  バックエンド開発  >  mysql.connect_timeout PHP オプションが 60 秒後の MySQL サーバー接続タイムアウトの原因となっていますか?

mysql.connect_timeout PHP オプションが 60 秒後の MySQL サーバー接続タイムアウトの原因となっていますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-18 22:10:30340ブラウズ

Is the mysql.connect_timeout PHP Option Causing MySQL Server Connection Timeouts After 60 Seconds?

MySQL サーバーの切断の問題: タイムアウトから 60 秒後に切断されました

問題:

を発見しました以前は正常に実行されていた SQL クエリが 60 秒後にタイムアウトし、エラーがスローされるようになりました。クエリが遅い場合でも、夜間ジョブの一部として実行されるため、それ自体は問題ではありません (したがって、クエリを最適化することは提案しないでください)。

以下に示すように、PHP から「select SLEEP(120);」を実行すると、エラーを一貫して再現できます。ただし、MySQL クライアントから同じステートメントを実行すると成功します (0 を返します)。 wait_timeout (28800 に設定) を調整しようとしましたが、成功しませんでした。データベースサーバーとコンピューター自体も再起動しました。

常に 60 秒ちょうどのタイムアウトが発生するため、リソースの制約の問題ではなくセットアップの問題である可能性があると考えられます。

私は実行しています:

  • Windows Server 2003
  • MySQL 5.1.36-community
  • PHP 5.3

以下は私のテストコード、出力、SHOW VARIABLES の結果です。

... 代码、输出和 SHOW VARIABLES 如下所示 ...

答え:

php オプション mysql.connect_timeout がこの問題の原因です。これは、接続タイムアウトだけでなく、サーバーからの最初の応答を待つためにも使用されます。次のように増やすことができます:

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

以上がmysql.connect_timeout PHP オプションが 60 秒後の MySQL サーバー接続タイムアウトの原因となっていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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