MySQL サーバーの切断の問題: タイムアウトから 60 秒後に切断されました
問題:
を発見しました以前は正常に実行されていた SQL クエリが 60 秒後にタイムアウトし、エラーがスローされるようになりました。クエリが遅い場合でも、夜間ジョブの一部として実行されるため、それ自体は問題ではありません (したがって、クエリを最適化することは提案しないでください)。
以下に示すように、PHP から「select SLEEP(120);」を実行すると、エラーを一貫して再現できます。ただし、MySQL クライアントから同じステートメントを実行すると成功します (0 を返します)。 wait_timeout (28800 に設定) を調整しようとしましたが、成功しませんでした。データベースサーバーとコンピューター自体も再起動しました。
常に 60 秒ちょうどのタイムアウトが発生するため、リソースの制約の問題ではなくセットアップの問題である可能性があると考えられます。
私は実行しています:
以下は私のテストコード、出力、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 サイトの他の関連記事を参照してください。