通信エラー、中止された接続などの接続の問題が発生した場合は、次の情報ソースを使用して問題を診断してください。
エラーログ。 セクション5.4.2「エラーログ」 を参照してください。
一般クエリーログ。 セクション5.4.3「一般クエリーログ」を参照してください。
Aborted_
ステータス変数およびxxx
Connection_errors_
ステータス変数。 セクション5.1.10「サーバーステータス変数」を参照してください。xxx
ホストキャッシュ。パフォーマンススキーマ
host_cache
テーブルを使用してアクセスできます。 セクション5.1.12.3「DNS ルックアップとホストキャッシュ」およびセクション27.12.19.5「host_cache テーブル」を参照してください。
log_error_verbosity
システム変数が 3 に設定されている場合、次のようなメッセージがエラーログに記録されることがあります:
[Note] Aborted connection 854 to db: 'employees' user: 'josh'
クライアントも接続できない場合、サーバーは Aborted_connects
ステータス変数をインクリメントします。 接続の失敗は、次の原因で発生することがあります。
クライアントがデータベースにアクセスしようとしましたが、データベースに対する権限がありません。
クライアントが不正なパスワードを使用している。
パケットに正しい情報が含まれていない。
接続パケットの取得には
connect_timeout
秒より長くかかります。 セクション5.1.8「サーバーシステム変数」を参照してください。
これらのことが発生した場合は、何者かがサーバーに侵入しようとしていることを示している可能性があります。 一般クエリーログが有効になっている場合は、これらのタイプの問題に関するメッセージがログに記録されます。
クライアントが正常に接続したが、その後不適切に切断または終了した場合、サーバーは Aborted_clients
ステータス変数をインクリメントし、「接続が中止されました」というメッセージをエラーログに記録します。 この原因は次のいずれかです。
クライアントプログラムが、終了する前に
mysql_close()
を呼び出さなかった。クライアントが、サーバーに要求を発行せずに
wait_timeout
秒またはinteractive_timeout
秒を超えてスリープしている。 セクション5.1.8「サーバーシステム変数」を参照してください。クライアントプログラムがデータ転送中に突然終了した。
中断された接続または中断されたクライアントに関するその他の問題の理由は次のとおりです:
max_allowed_packet
変数の値が小さすぎるか、クエリーが mysqld 用に割り当てられているメモリーより大きいメモリーの領域を要求した。 セクションB.3.2.8「パケットが大きすぎます」を参照してください。Linux で半二重および全二重の両方の Ethernet プロトコルが使用された。 一部の Linux イーサネットドライバにはこのバグがあります。 FTP を使用して、クライアントマシンとサーバーマシンの間で大きなファイルを転送することによって、このバグをテストしてください。 転送がバースト-ポーズ-バースト-ポーズモードになる場合は、Linux の二重化シンドロームに陥っています。 ネットワークカードとハブ/スイッチの二重化モードを全二重または半二重に切り替えて結果をテストし、最適な設定を判別します。
読み取りで中断が発生するスレッドライブラリの問題。
不適切に構成されている TCP/IP。
障害のある Ethernet、ハブ、スイッチ、ケーブルなど。 これは、ハードウェアを交換することによってのみ適切に診断できます。
セクションB.3.2.7「MySQL サーバーが存在しなくなりました」も参照してください。