クエリログとは? #
クエリログは、データベースに対して実行されたSQLクエリを記録するログとなります。
このログには、ユーザーが実行したSQLコマンドや接続に関する情報が含まれおり、主にデバッグや監査、パフォーマンス分析の目的で利用されます。
MySQL9.0ではクエリログ(general_log
)の出力設定はデフォルトではOFFとなっています。
MySQLに接続 #
早速、クエリログ設定の確認を行っています。
初めにデータベースへのログインを行います。
サーバーへSSH接続を行ってください。
次に以下のコマンドを利用しデータベース(MySQL)へログインを行ってください。
mysql -u ユーザー名 -p
設定の確認 #
MySQLへのログインが完了したら下記のクエリを実行し、一般設定を表示してください。
SHOW VARIABLES LIKE 'general_log%';
下記、出力結果の例となります。
+------------------+----------------------------+
| Variable_name | Value |
+------------------+----------------------------+
| general_log | OFF |
| general_log_file | ログパス |
+------------------+----------------------------+
「general_log
」はクエリログ出力の設定ステータスとなります。
ONとなっている場合、クエリログ出力が有効化されており。OFFとなっている場合は無効化状態となっております。
「general_log_file
」はクエリログの出力先パスとなります。
ログ出力が有効化されている場合、general_log_file
にて指定されたパスにログが出力されます。
一時的にクエリログを有効化する方法 #
クエリログを一時的に有効化するには、MySQLのクエリで以下のコマンドを実行します。
SET GLOBAL general_log = 'ON';
これにより、一時的にgeneral_log設定が有効となります。
+------------------+----------------------------+
| Variable_name | Value |
+------------------+----------------------------+
| general_log | ON |
| general_log_file | ログパス |
+------------------+----------------------------+
ただし本設定は一時的な設定となっておりMySQLサーバーを再起動した場合、デフォルト値となります。
永続的にクエリログを有効化する方法 #
永続的にクエリログを有効化するためには、MySQLの設定ファイル(一般的には/etc/my.cnf)の[mysqld]セクションに設定を記述します。
独自の構成を取っている場合は、該当する設定ファイルに記述してください。
設定内容は以下となっております。
[mysqld]
general_log = 1
general_log_file = ログパス
設定を反映させるため、MySQLサーバーを再起動します。
systemctl restart mysql
以上でクエリログが永続的に記録されるようになります。