MySQLでクエリログを有効化する方法|SET GLOBALの正しい使い方
MySQLクエリログを有効化する方法
MySQLでクエリログ(一般ログ)を有効にするには、SET globalコマンドを使用します。general_logはグローバル変数であるため、セッション単位では設定できず、必ずGLOBALキーワードを付けて実行する必要があります。
GLOBALを付けずに実行した場合のエラー
たとえばMySQL 8.0.12環境で、SET general_logのようにそのまま実行すると、次のようなエラーが発生します。
mysql> SET general_log = 1;
出力結果:
ERROR 1229 (HY000): Variable 'general_log' is a GLOBAL variable and should be set with SET GLOBAL
このエラーは「general_logはグローバル変数なので、SET GLOBALを使って設定しなければならない」という意味です。
クエリログを有効にする正しい手順
globalキーワードを付けて実行することで、正しく設定できます。
mysql> SET global general_log = 1; Query OK, 0 rows affected (0.10 sec)
設定状態の確認方法
ログが有効になったかどうかは、SHOWコマンドで確認できます。
mysql> SHOW variables like '%general_log%';
出力結果:
+------------------+---------------------+ | Variable_name | Value | +------------------+---------------------+ | general_log | ON | | general_log_file | DESKTOP-QN2RB3H.log | +------------------+---------------------+ 2 rows in set (0.03 sec)
この出力例から、値に「1」を指定することでログが有効化(ON)されたことがわかります。また、general_log_fileには実際にログが出力されるファイル名が表示されます。
クエリログを無効にする方法
逆に、値を「0」に設定すればクエリログを無効化できます。
mysql> SET global general_log = 0; Query OK, 0 rows affected (0.06 sec)
もう一度確認してみましょう。
mysql> SHOW variables like '%general_log%';
出力結果:
+------------------+---------------------+ | Variable_name | Value | +------------------+---------------------+ | general_log | OFF | | general_log_file | DESKTOP-QN2RB3H.log | +------------------+---------------------+ 2 rows in set (0.00 sec)
まとめ
- クエリログの切り替えは
SET global general_log = 1(有効)/ 0(無効)で行う GLOBALを省略するとエラー1229が発生するので注意- 現在の状態は
SHOW variables like '%general_log%'で確認できる
-
【MySQL入門】別のユーザーとしてログインする方法をわかりやすく解説
MySQLで別のユーザーとしてログインしたい場合は、mysql -u ユーザー名 -p コマンドを使用します。この記事では、新しいユーザーの作成から、作成したユーザーでのログイン方法まで、手順を追って詳しく解説します。別のユーザーとしてログインするための基本構文別のユーザーとしてMySQLにログインする際の基本構文は以下の通りです。> mysql -u yourUsername -pEnter password:コマンドを実行してEnterキーを押すと、パスワードの入力を求められます。ここに該当ユーザーのパスワードを入力すればログインできます。ステップ1:新しいユーザーを作成するまずは、
-
MySQLでスロークエリログを設定する方法|遅いクエリの原因を特定する手順
本番環境のMySQLサーバーを運用・管理していると、データベースの動作が突然遅くなることがあります。原因となっているクエリを特定するのは容易ではなく、かなりの時間を要する作業になりがちです。そんなときに役立つのが、MySQLに標準搭載されている「スロークエリログ」機能です。 スロークエリログとは スロークエリログとは、指定した実行時間を超えたクエリを自動的に記録する機能です。このログを有効にしておけば、データベースサーバーの動作が通常より遅いと感じたときに、ログファイルをテキストエディタで開くだけで、どのクエリがボトルネックになっているのかをすぐに確認できます。 my.cnfでスロークエリ