MySQLのログについて確認した時のメモ
参考
概要
よく使われるログは以下の4つ
ログの週類 | mysqldの起動オプション | 説明 |
---|---|---|
errorログ | --log-error | サーバーから出力されるエラーメッセージを記録する |
SlowQueryログ | --slow-query-log | 処理に時間のかかったクエリを記録する |
詳細ログ | --general-log | 詳細な情報を記録。すべての操作が記録 |
バイナリログ | --log-bin | 更新SQL文だけをバイナリ形式で記録する |
debugログ | --debug | 開発者向けのトレースログ |
出力はMySQLの設定ファイルの1my.cnf
で指定できる。
エラーログ
以下引用
エラーログには mysqld が開始および停止された時期を示す情報と、サーバーが実行中に発生したあらゆるクリティカルエラーが格納されます。自動的にチェックまたは修復することが必要なテーブルが mysqld で検出された場合、エラーログに警告メッセージが書き込まれます。
エラーログなので、起動時にこのログが出力された場合には監視した方が良さそうです。
出力先は設定ファイルで以下のように設定します。
log-error=/var/log/mysqld.log # ファイルパス
また以下のように指定することでsyslogに書くこともできるようです。
[mysqld_safe]
syslog
Slow Queryログ
一定時間以上クエリに時間がかかったSQLやインデックスが利用されていないSQLを記録することができるようです。
slow_query_log # slow queryログの有効化
slow_query_log_file=/usr/local/mysql/data/slow.log # ファイルパス
long_query_time=5 # 5秒以上処理に時間がかかったクエリを記録
log-queries-not-using-indexes # インデックスが使用されていないクエリをログに出力
また、ファイルへの書き込み以外にもテーブルへSlowQueryログ情報を記録することもできます。
詳細ログ
いつ、どのユーザーがどのホストから接続してきて、どのようなクエリを実行したかなどの詳細な情報を確認できるようです。
[mysqld]
general_log # 詳細ログ有効化
general_log_file=/usr/local/mysql/data/general.log # ファイルパス
詳細ログもテーブルに記録することが可能です。
バイナリログ
発行されたクエリのうち、更新系のSQLのみをログとして記録します。
log-bin=master-bin #バイナリログのベース名
log-bin-index=master-bin #バイナリログのファイル名を記録したindexファイル名
このバイナリログはレプリケーションの際に利用されます。