Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  mysqld でのエラーの原因を見つけるためのサーバーログの使用

24.4.1.6 mysqld でのエラーの原因を見つけるためのサーバーログの使用

一般クエリーログを有効にして mysqld を起動する前に、myisamchk を使用してすべてのテーブルをチェックしてください。第5章「MySQL サーバーの管理 を参照してください。

mysqld が異常終了またはハングアップする場合は、一般クエリーログを有効にして mysqld を起動してください。セクション5.2.3「一般クエリーログ」を参照してください。mysqld がふたたび異常終了したら、ログファイルの最後の部分を調査して、mysqld が強制終了されたクエリーを見つけることができます。

デフォルトの一般クエリーログファイルを使用した場合、ログはデータベースディレクトリに host_name.log として格納されます。ほとんどの場合、mysqld が強制終了されたのはログファイル内の最後のクエリーですが、可能であれば、mysqld を再起動して、見つかったクエリーを mysql コマンド行ツールから実行することによって、このことを検証してください。これが動作する場合は、完了しなかった複雑なクエリーもすべてテストしてください。

また、長い時間がかかるすべての SELECT ステートメントに対して EXPLAIN コマンドを試すことで、mysqld がインデックスを適切に使用していることを確認できます。セクション13.8.2「EXPLAIN 構文」を参照してください。

実行に長い時間がかかるクエリーを見つけるには、スロークエリーログを有効にして mysqld を起動します。セクション5.2.5「スロークエリーログ」を参照してください。

エラーログファイル (通常は hostname.err という名前) に mysqld restarted というテキストがあった場合は、mysqld でエラーが発生した原因であるクエリーが見つかった可能性があります。これが発生した場合、myisamchk を使用してすべてのテーブルをチェックし (第5章「MySQL サーバーの管理を参照してください)、MySQL ログファイル内のクエリーをテストして、失敗するかどうかを確認します。そのようなクエリーが見つかった場合は、まず最新バージョンの MySQL にアップグレードすることを試してください。これで解決されず、mysql のメールアーカイブで参考になる回答が見つからない場合は、MySQL メーリングリストにバグを報告してください。メーリングリストについては http://lists.mysql.com/ で説明されており、アーカイブのオンラインリストへのリンクもあります。

--myisam-recover-options を指定して mysqld を起動した場合、MySQL は「not closed properly」または「crashed」としてマークされている MyISAM テーブルを自動的にチェックして修復しようとします。これが発生した場合、MySQL は hostname.err ファイルに「警告: テーブル ... をチェックしています」と書き込み、テーブルを修復する必要がある場合は、「警告: テーブルを修復しています」がそのあとに書き込まれます。これらのエラーを多数受け取り、その直前に予期しない mysqld の停止がなかった場合は、何らかの問題があるため、さらに調査する必要があります。セクション5.1.3「サーバーコマンドオプション」を参照してください。

MySQL 5.6 では、サーバーが MyISAM テーブルの破損を検出すると、追加の情報 (ソースファイルの名前と行番号、テーブルにアクセスしていたスレッドのリストなど) をエラーログに書き込みます。たとえば、「thread_id=1 からエラーを受け取りました。mi_dynrec.c:368」です。これは、バグレポートに含めると役に立つ情報です。

mysqld が予期せず異常終了することは良い兆候ではありませんが、この場合は Checking table... メッセージを調査するのではなく、mysqld が異常終了した原因を見つけるようにしてください。


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.