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