😸
MySQLのログについてまとめる
参考
MySQLのログについて
MySQLで出力されるログは以下です。
項目 | 説明 | 利用タイミング |
---|---|---|
エラーログ | 起動、停止、SQL実行時にエラーがあった場合に出力 | 障害時の調査 |
スロークエリログ | 指定(long_query_timeで設定)した時間(秒)で処理が終了しなかった (タイムアウトしたとき)のSQLと、INDEXを利用しないSQLが保存 |
運用時の監視対象 |
一般クエリログ | サーバーに接続された場合と、SQLが実行された場合にそのSQLを出力 | デバッグ時のみ(本番で出すとパフォーマンス落ちる) |
バイナリログ | 更新系のSQLを出力 | レプリケーションで使うみたい |
リレーログ | 謎 | |
DDLログ | DDLの変更をロギングするらしいが、あまり使えない模様 |
設定方法(汎用)
my.iniの[mysqld]セクションに記載(それ以外に記載すると無効)
設定の例(Windows環境、一般クエリログ・スロークエリログ・エラーログを設定)
my.ini
[mysqld]
//ログの時間をサーバーにあわせる。「SELECT @@log_timestamps;」「SELECT NOW();」で確認可能
log_timestamps=SYSTEM
//ログ設定
log-output=FILE
general-log=1
general_log_file="C:/aaa/xampp/mysql/logs/general-query.log"
log_error="C:/aaa/xampp/mysql/logs/error.log"
log_error_verbosity=1
slow_query_log=1
slow_query_log_file="C:/aaa/xampp/mysql/logs/slow_query.log"
long_query_time=2
各種ログの設定
全体
項目 | 説明 | 設定値 | 例 |
---|---|---|---|
log-output | ログの出力先ファイルの種類を設定。 (指定がない場合デフォはFILEなので指定しなくてもいい) |
FILE・・・ファイルに出力 TABLE・・・テーブルに出力 NONE・・・どちらにも出力しない |
log-output=FILE |
一般クエリログ
項目 | 説明 | 設定値 | 例 |
---|---|---|---|
general-log | 出力の有無を設定 | 0・・・出力しない 1・・・出力する |
general-log=1 |
general_log_file | 出力先 | ファイルパス | general_log_file="C:/aaa/xampp/mysql/logs/general-query.log" |
出力結果
2023-11-11T23:43:32.092762Z 8 Connect root@localhost on *** using SSL/TLS
2023-11-11T23:43:32.096379Z 8 Query select * from users
→接続と、selectが出力
エラーログ
項目 | 説明 | 設定値 | 例 |
---|---|---|---|
log_error | 出力先 | ファイルパス | general_log_file="C:/aaa/xampp/mysql/logs/general-query.log" |
log_error_verbosity | ログレベルを設定 | 1・・・ERROR 2・・・ERROR、WARNING 3・・・ERROR、WARNING、INFORMATION |
log_error_verbosity=1 |
出力結果
2023-11-11T23:40:52.609135Z 0 [ERROR] [MY-000067] [Server] unknown variable 'logn_query_time=2'.
my.iniの設定がおかしい場合に出力
スロークエリログ
項目 | 説明 | 設定値 | 例 |
---|---|---|---|
slow_query_log | 出力の有無を設定 | 0・・・出力しない 1・・・出力する |
slow_query_log=1 |
slow_query_log_file | 出力先 | ファイルパス | slow_query_log_file="C:/aaa/xampp/mysql/logs/slow_query.log" |
long_query_time | 出力するしきい値 | 秒 | long_query_time=2 |
出力結果
select sleep(5);
→select sleep(5);を実行した場合
Discussion