Jan 12

如何在Windows下监控mysql正在执行的sql语句和日志 不指定

admin , 20:14 , 数据库 » 数据库(MySql) , 评论(0) , 引用(0) , 阅读(82) , Via 本站原创 | |
搜索
我已经获得阿里云幸运券,准备分享给您。请点击获取   如何在Windows下监控mysql正在执行的sql语句和日志
因为我们开发的时候大部分是在本机进行,使用本地的数据库,所以这边以本地为例
以本机mysql为例,先查看mysql日志启用情况,默认情况下mysql日志是关闭状态,
可以通过如下语句 SHOW VARIABLES LIKE "general_log%" ,进行查看,
这时我们看到的是OFF,还有日志所在的位置,使用此默认位置


how-to-show-mysql-sql-log
可以通过如下语句开启,SET GLOBAL general_log = 'ON',执行成功之后看到如下
这样我们就开启mysql日志文件了,
若是在Linux系统下,我们直接使用 tail -f 命令进行日志的输出查看,在Windows下,我们通过Bare Tail这个实时读取sql日志文件和输出sql语句

mysql> SHOW VARIABLES LIKE "general_log%";
+------------------+------------------------------------------------------+
| Variable_name    | Value                                                |
+------------------+------------------------------------------------------+
| general_log      | ON                                                   |
| general_log_file | C:\phpStudy\PHPTutorial\MySQL\data\itlife365-com.log |
+------------------+------------------------------------------------------+
2 rows in set (0.00 sec)

mysql>
mysql> SELECT * from mysql.general_log ORDER BY event_time DESC;
Empty set (0.00 sec)

mysql> SET GLOBAL general_log = 'OFF';
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT * from mysql.general_log ORDER BY event_time DESC;
Empty set (0.00 sec)

mysql> SHOW VARIABLES LIKE "general_log%";
+------------------+------------------------------------------------------+
| Variable_name    | Value                                                |
+------------------+------------------------------------------------------+
| general_log      | OFF                                                  |
| general_log_file | C:\phpStudy\PHPTutorial\MySQL\data\itlife365-com.log |
+------------------+------------------------------------------------------+
2 rows in set (0.00 sec)

其他语句也可以参考
1、使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应历史记录,查看不到。好处是不用设置,不会保存。
-- use information_schema;
-- show processlist;
或者:
-- select * from information_schema.`PROCESSLIST` where info is not null;

2、开启日志模式
-- 1、设置
-- SET GLOBAL log_output = 'TABLE';SET GLOBAL general_log = 'ON';  //日志开启
-- SET GLOBAL log_output = 'TABLE'; SET GLOBAL general_log = 'OFF';  //日志关闭
-- 2、查询
SELECT * from mysql.general_log ORDER BY event_time DESC;

-- 3、清空表(delete对于这个表,不允许使用,只能用truncate)
-- truncate table mysql.general_log;
在查询sql语句之后,在对应的  C:\Program Files\MySQL\MySQL Server 5.7\data   文件夹下面有对应的log记录
如:
 C:\phpStudy\PHPTutorial\MySQL\data\itlife365-com.log
ps:在查询到所需要的记录之后,应尽快关闭日志模式,占用磁盘空间比较大
Tags: