MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

B.3.2.7 MySQL サーバーが存在しなくなりました

このセクションでは、関連する「クエリー中にサーバーへの接続が失われました」というエラーについても説明します。

「MySQL サーバーが存在しなくなりました」というエラーのもっとも一般的な原因は、サーバーがタイムアウトして接続が閉じられた場合です。 この場合は、通常、次のいずれかのエラーコードを受け取ります (受け取るエラーコードはオペレーティングシステムによって異なります)。

エラーコード 説明
CR_SERVER_GONE_ERROR クライアントはサーバーに問い合わせを送信できませんでした。
CR_SERVER_LOST クライアントはサーバーに書き込むときにエラーを受け取りませんでしたが、問い合わせに対する完全な応答 (または何らかの応答) が得られませんでした。

デフォルトでは、何も発生しなかった場合、サーバーは 8 時間後に接続を閉じます。 この時間制限を変更するには、mysqld を起動するときに wait_timeout 変数を設定します。 セクション5.1.8「サーバーシステム変数」を参照してください。

スクリプトがある場合、クライアントが自動再接続を行うには、クエリーを再発行する必要があるだけです。 これは、クライアントの自動再接続を有効にしている (mysql コマンド行クライアントのデフォルト) ことが前提です。

「MySQL サーバーが存在しなくなりました」というエラーのほかの一般的な原因を次に示します。

MySQL サーバーが停止して再起動されたかどうかを確認するには、mysqladmin version を実行してサーバーの稼働時間を検査します。 mysqld がクラッシュして再起動されたためにクライアント接続が切断された場合は、そのクラッシュの原因を見つけることに集中してください。 クエリーを再び発行するとサーバーが再び強制終了されるかどうかを確認することから始めます。 セクションB.3.3.3「MySQL が繰り返しクラッシュする場合の対処方法」を参照してください。

失われた接続の詳細を取得するには、log_error_verbosity システム変数を 3 に設定して mysqld を起動します。 これにより、切断メッセージの一部が hostname.err ファイルに記録されます。 セクション5.4.2「エラーログ」 を参照してください。

この問題に関するバグレポートを作成する場合は、次の情報を含めてください。

セクションB.3.2.9「通信エラーおよび中止された接続」およびセクション1.6「質問またはバグをレポートする方法」も参照してください。