データベースのトラブルシューティングに役立つ!MySQLクエリログ
MySQLクエリログを有効にする方法
MySQLクエリログには2種類あります。
- 一般クエリログ: すべてのSQLクエリを記録します。
- スロークエリログ: 実行時間が長いクエリのみを記録します。
一般クエリログを有効にするには、次の手順を実行します。
-
MySQLサーバーの設定ファイル
my.cnf
を開きます。- Windows:
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
- Mac:
/etc/my.cnf
- Linux:
/etc/mysql/my.cnf
- Windows:
general_log = 1
general_log_file = /var/log/mysql/mysql-query.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow-query.log
long_query_time = 10
ヒント:
- ログファイルが大きくなりすぎるのを防ぐため、定期的にログファイルをローテーションすることをお勧めします。
- ログファイルの内容は、機密情報を含む可能性があるため、適切に保護する必要があります。
一般クエリログ
-- 一般クエリログを有効にする
SET GLOBAL general_log = 1;
-- 一般クエリログを無効にする
SET GLOBAL general_log = 0;
スロークエリログ
-- スロークエリログを有効にする
SET GLOBAL slow_query_log = 1;
-- スロークエリログを無効にする
SET GLOBAL slow_query_log = 0;
-- スロークエリログの出力時間閾値を設定する
SET GLOBAL long_query_time = 10;
ログファイルの確認
tail -f /var/log/mysql/mysql-query.log
tail -f /var/log/mysql/mysql-slow-query.log
MySQLクエリログを有効にするその他の方法
ここでは、その他の方法を紹介します。
コマンドラインツールを使う
MySQLコマンドラインツールを使って、一般クエリログとスロークエリログを有効にすることができます。
一般クエリログを有効にする
mysqld --general-log=1
mysqld --slow-query-log=1 --long-query-time=10
オプション
--general-log-file
: ログファイルの名前を指定します。--long-query-time
: スロークエリとみなされるクエリの実行時間閾値を指定します。
- MySQL Workbenchで接続したいサーバーを選択します。
- サーバー管理 > 構成 > インスタンス > 詳細設定 > ログ タブを開きます。
- 一般クエリログ セクションで、有効 チェックボックスを選択します。
- 適用 をクリックします。
GUIツールを使う
GUIツールの使い方は、ツールによって異なるので、ツールのドキュメントを参照してください。
自分に合った方法を選択してください。
mysql logging