0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【MySQL学習】一般クエリーログ

Last updated at Posted at 2022-07-18

はじめに

MySQLの一般クエリーログについて学習したことを簡単にまとめます。

検証に使用した環境

DB:MySQL8.0

一般クエリーログとは

一般クエリーログは、mysqlの実行内容が記録されるログファイルです。
クライアントが接続/解除したときの情報に加え、クライアントから受け取ったSQLステートメントをロギングします。
そのため、何かエラーが発生した時にクライアントが送信した内容を正確に知るのに利用します。

出力先を変更でき、ログファイル、DB内のgeneral_logテーブル、または両方に出力できます。

ファイル名

ファイル名を指定しない限り、データディレクトリ内に「ホスト名(host_name).log」でファイルを作成します。

全てのログはWindows上のエラーログを除き、デフォルトでは無効化されています。
そのため、システム変数を設定して有効化する必要があります。

システム変数

general_log

一般クエリーログのロギングの有効・無効を設定できます。
「1」を指定するとロギングが有効になり、「0」を指定すると無効になります。
※「general_log」とだけ記載した引数なしの状態でも有効になります

general_log_file

ファイルロギングでデフォルト以外のファイル名を指定します。

log_output

ログの出力先を指定します。
log_outputには以下の単語をカンマ区切りで指定します。
TABLE → テーブルに出力
FILE → ファイルに出力
NONE → テーブル、ファイルに記録しない
※NONEがある場合、他よりも優先されます。

起動時にlog_outputを指定していない場合、デフォルトのロギング先はFILEになります。

log_timestamps

一般クエリーログに書き込まれるメッセージのタイムスタンプのタイムゾーンを指定します。
※スロークエリーログとエラーログにも反映されます

セッション変数

sql_log_off

現在のセッションに対する一般クエリーログのロギングを無効または有効に設定する
※一般クエリーログ自体が有効になっていることが前提

ログの内容

前述の通り、一般クエリーログには、クライアントが接続/解除したときの情報に加え、受け取ったSQLステートメントがロギングされます。

以下、
MySQLに接続して「SHOW VARIABLES;」を実行した例です。

sh-4.2# tail -f 2476896863b5.log 
/usr/sbin/mysqld, Version: 8.0.29 (MySQL Community Server - GPL). started with:
Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
2022-07-18T10:01:36.501366Z	    9 Connect	devuser@localhost on  using Socket
2022-07-18T10:01:36.501868Z	    9 Query	select @@version_comment limit 1
2022-07-18T10:02:16.887064Z	    9 Query	SHOW VARIABLES
2022-07-18T10:02:19.546411Z	    9 Quit

注意

出力順

実際に実行された順番通りに出力されるとは限らない。

パスワードの扱い

一般クエリーログにロギングされたステートメント内のパスワードは、プレーンテキストで出力しないようにサーバーによって書き換えられます。

一応、「--log-raw」オプションでパスワードの書き換えを抑制できます。
MySQLが受け取ったステートメントの正確なテキストが必要な時などに便利ですが、セキュリティー上の理由により本番用には非推奨とされています。

参考文献

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?