MySQL中的参数general_log用来控制开启、关闭MySQL查询日志,参数general_log_file用来控制查询日志的位置。所以如果你要判断MySQL数据库是否开启了查询日志,可以使用下面命令。general_log为ON表示开启查询日志,OFF表示关闭查询日志。
mysql> show variables like '%general_log%';
+------------------+-----------------------------------------------------------------+
| Variable_name | Value
|
+------------------+-----------------------------------------------------------------+
| general_log | OFF
|
| general_log_file | D:\phpstudy_pro\Extensions\MySQL5.7.26\data\LS--20200725FKO.log |
+------------------+-----------------------------------------------------------------+
2 rows in set, 1 warning (0.05 sec)
开启MySQL查询日志
mysql> set global general_log = on;
Query OK, 0 rows affected (0.06 sec)
设置日志输出方式为表
查看
mysql> show variables like 'log_output';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output | FILE |
+---------------+-------+
1 row in set, 1 warning (0.00 sec)
设置
mysql> set global log_output='table';
Query OK, 0 rows affected (0.00 sec)
当看到下面出现就表示成功了。
mysql> select * from mysql.general_log;
+----------------------------+------------------------------------+-----------+-----------+--------------+----------------------------------+
| event_time| user_host| thread_id |server_id | command_type |argument|
+----------------------------+------------------------------------+-----------+-----------+--------------+----------------------------------+
| 2020-07-30 09:06:42.805068 | root[root] @ localhost[127.0.0.1]|132 |1 | Query| show variables like 'log_output' |
| 2020-07-30 09:06:46.517875 | root[root] @ localhost [127.0.0.1] |132 |1 | Query| select * from mysql.general_log |
+----------------------------+------------------------------------+-----------+-----------+--------------+----------------------------------+
2 rows in set (0.00 sec)
然后我们利用BareTail连接上日志查看起来比较方便,需要这个软件的可以加我qq:3075999532(也可以自行百度)。
MySQL查询日志基本可以定位那些出现性能问题的SQL,所以MySQL查询日志应用的场景其实不多,有点鸡肋的感觉。
参考:https://www.cnblogs.com/frankltf/p/8723944.html