MySQLのログの種類とログの設定方法

MySQLでは、4つログの種類があります。
・エラー ログ
・一般クエリ ログ
・バイナリ ログ
・スロー クエリ ログ

1.エラー ログ

mysqld (サーバー)の起動、実行、停止のロギング、また発生した問題のエラー情報などをロギング

/etc/my.cnf(my.ini)
my.cnfで設定するパラメータ)は、ハイフォン(“-“)を使わない

[mysqld]
# Error log
log_error=”/var/log/mysql/mysqld.log”
log_warnings=1

2.一般クエリ ログ

mysqld (サーバー)がクライアントとの接続と実行したクエリ(SQL)をロギング

/etc/my.cnf(my.ini)
my.cnfで設定するパラメータ)は、ハイフォン(“-“)を使わない

[mysqld]
# Query log
log=”/var/log/mysql/sql.log”
ファイル名を指定しない場合は、「ホスト名.log」のファイル名で保存される。

# Query log
general_log=1
#1:ロギングする、0:ロギングしない

general_log_file=”/var/log/mysql/sql.log”
#指定しない場合は、「ホスト名.log」のファイル名で保存

log_output=FILE
#TABLE:テーブルへのログ、FILE:ファイルへのログ、NONE:テーブルまたはファイルにログしない のいずれか。

3.バイナリログ

mysqld (サーバー)のデータ変更のステートメントをバイナリ情報でロギングします。また、レプリケーションにも使用される。
mysqlbinlogコマンドで確認する。
mysqlbinlogコマンドにバイナリログのファイル名を指定するとロールバック用のSQL文が出力される。

[mysqld]
# Binary log
log_bin=”/var/log/mysql/bin.log”
#ログファイル名を指定すると有効になる。

log_bin_index=”/var/log/mysql/bin.list”
#バイナリログ ファイル名を管理するためのファイルの名前

max_binlog_size=1M
#バイナリログの最大ファイルサイズを指定。サイズ超過でローテートする。
#設定可能な値は、4096B~1GB(デフォルト)

expire_logs_days=1
#保存期間を日数。デフォルト0 は、削除しない。

4.スロークエリログ

long_query_time で指定した秒数より時間を要したクエリ(SQL)、またはインデックスを使用しなかったクエリ(SQL)のロギング。

[mysqld]
# Slow Query log
slow_query_log=1
#1:ロギングする、0:ロギングしない

slow_query_log_file=”/var/log/mysql/slow.log”
#指定しない場合は、general_log_file

log_queries_not_using_indexes
#インデックスしていないクエリを全て出力する場合に指定

log_slow_admin_statements
#管理用のステートメント(OPTIMIZE TABLE、ANALYZE TABLE、ALTER TABLE など) についてもロギングしたい場合に指定

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です