MySQLサーバのログファイル
MySQLサーバの主なログファイルおよび該当するコマンドラインオプションは下記の通りです。なお、それぞれのコマンドラインオプションにはファイル名(バイナリログの場合はファイル名の一部)が指定できます。ファイル名を指定しない場合は、ホスト名を利用したファイル名がデフォルトで付けられます。これらのオプションはコマンドラインでは指定するのではなく、設定ファイルに記述しておくことも可能です。
ログの種類 | オプション | 概要 |
エラーログ | --log-error | MySQLサーバの起動停止の情報や、サーバサイドのエラーを記録 |
一般ログ | --general-log | クライアントからの接続と実行されるSQL文やコマンドを記録 |
スロークエリログ | --slow-query-log | 閾値以上の時間がかかったSQL文を記録 |
バイナリログ | --log-bin | データを変更するSQL文を記録 |
監査ログ | --audit-log MySQL | Enterprise Editionで利用可能な監査用途の情報を記録 |
他にレプリケーション構成のスレーブで利用されるリレーログやInnoDBストレージエンジンのトランザクションログなどがありますが、これらについてはそれぞれのテーマにて解説をする予定です。
エラーログ:MySQLサーバの起動停止とエラーを記録
エラーログにはMySQLサーバの起動と停止の情報、および致命的なエラーが記録されます。Linuxなど一部OSではMySQLサーバがクラッシュした場合に、原因分析のためのスタックトレースが出力されます。スタックトレースの解析方法は下記を参照してください。
http://dev.mysql.com/doc/refman/5.6/en/using-stack-trace.html
MySQLサーバのエラーログのデフォルトの出力先はOSによって異なります。Windowsでは、データディレクトリにファイル名”<ホスト名>.err”が使われます。--log-errorオプションをファイル名なしで指定した場合も同じです。--log-errorには絶対パスも指定可能です。--consoleオプションのみを指定すると、mysqldプロセスを起動したDOSプロンプトにエラーログを出力し、ログファイルには記録されません。--log-errorと--consoleの両方を指定することも可能です。Windowsではこれらに加えて、イベントビューアーで確認できるイベントログにも出力されます。
Linuxや各UNIX環境では、--log-errorオプションなしの状態ではコンソールにエラーログを出力、--log-errorオプションをファイル名なしで指定した場合はWindowsと同じくファイル名”<ホスト名>.err”データディレクトリに置かれます。また、Syslogにエラーログを出力する場合には、mysqld_safeの--syslogオプションを利用します。
既存のログファイル保管して新しいログに切り替える場合は、FLUSH LOGSコマンドかmysqladmin flush-logsコマンドを利用します。下記はmysqladmin flush-logsコマンドを利用した例です。
Windows環境ではmvコマンドの代わりにrenameコマンドを使用します。