查看mysql运行日志:mysql_general_log(查看mysql执行历史)

 

1、应用场景

在Linux命令行模式事实监控mysql的执行历史,就像redis->monitor一样~

2、说明

默认mysql是关闭general_log的,因为实时监控时间长了这个文件会很大!所以只有需要临时调试程序的时候手动开启即可,调试完成记得手动删除general_log文件,并关闭设置。

3、设置

// 查看mysql当前设置
mysql> show VARIABLES like '%general_log%';
+------------------+--------------------------+
| Variable_name | Value |
+------------------+--------------------------+
| general_log | OFF |
| general_log_file | /var/lib/mysql/xxx.log |
+------------------+--------------------------+
2 rows in set (0.00 sec)

// 关闭和开启
mysql> set global general_log="off";
Query OK, 0 rows affected (0.00 sec)

mysql> set global general_log="on";
Query OK, 0 rows affected (0.00

参考如下实践:

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| bg-biz |
| bg-bnzc |
| bg-mc |
| bg-scheduler |
| bg-uc |
| bg-hao-db |
| haotest |
| mysql |
| performance_schema |
| xxl-job |
+--------------------+
11 rows in set (0.00 sec)

mysql> use bg-vehicle-db;

mysql> show VARIABLES like '%general_log%';
+------------------+------------------------------+
| Variable_name | Value |
+------------------+------------------------------+
| general_log | OFF |
| general_log_file | /var/lib/mysql/localhost.log |
+------------------+------------------------------+
2 rows in set (0.00 sec)

mysql> set global general_log="on";
Query OK, 0 rows affected (0.00 sec)

mysql> show VARIABLES like '%general_log%';
+------------------+------------------------------+
| Variable_name | Value |
+------------------+------------------------------+
| general_log | ON |
| general_log_file | /var/lib/mysql/localhost.log |
+------------------+------------------------------+
2 rows in set (0.00 sec)

mysql>

 

4、实时监控执行sql

执行上一步的查看设置命令,会显示general_log_file文件的路径。 
使用tail 命令实时监控:

 

[root@localhost ~]# tail

 

 

5. 记得关闭掉

使用完成之后,记得关闭掉:

mysql> set global general_log="off";
Query OK, 0 rows affected (0.00

 


赠人玫瑰
手留余香

我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生