LoginSignup
82
85

More than 5 years have passed since last update.

MySQLのログについて確認する

Posted at

MySQLのログについて確認した時のメモ

参考

概要

よく使われるログは以下の4つ

ログの週類 mysqldの起動オプション 説明
errorログ --log-error サーバーから出力されるエラーメッセージを記録する
SlowQueryログ --slow-query-log 処理に時間のかかったクエリを記録する
詳細ログ --general-log 詳細な情報を記録。すべての操作が記録
バイナリログ --log-bin 更新SQL文だけをバイナリ形式で記録する
debugログ --debug 開発者向けのトレースログ

出力はMySQLの設定ファイルの1my.cnfで指定できる。

エラーログ

5.2.2 エラーログ

以下引用

エラーログには mysqld が開始および停止された時期を示す情報と、サーバーが実行中に発生したあらゆるクリティカルエラーが格納されます。自動的にチェックまたは修復することが必要なテーブルが mysqld で検出された場合、エラーログに警告メッセージが書き込まれます。

エラーログなので、起動時にこのログが出力された場合には監視した方が良さそうです。

出力先は設定ファイルで以下のように設定します。

my.cnf
log-error=/var/log/mysqld.log # ファイルパス

また以下のように指定することでsyslogに書くこともできるようです。

my.cnf
[mysqld_safe]
syslog

Slow Queryログ

一定時間以上クエリに時間がかかったSQLやインデックスが利用されていないSQLを記録することができるようです。

my.cnf
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ログ情報を記録することもできます。

詳細ログ

いつ、どのユーザーがどのホストから接続してきて、どのようなクエリを実行したかなどの詳細な情報を確認できるようです。

my.cnf
[mysqld]
general_log # 詳細ログ有効化
general_log_file=/usr/local/mysql/data/general.log # ファイルパス

詳細ログもテーブルに記録することが可能です。

バイナリログ

発行されたクエリのうち、更新系のSQLのみをログとして記録します。

my.cnf
log-bin=master-bin #バイナリログのベース名
log-bin-index=master-bin #バイナリログのファイル名を記録したindexファイル名

このバイナリログはレプリケーションの際に利用されます。

82
85
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
82
85