通用查询日志用来记录用户的所有操作,包括启动和关闭MySQL服务、更新语句、查询语句等。
默认情况下,通用查询日志功能是关闭的,除非有特殊的要求时,比如对数据库进行监视时才需要打开。
log参数现在已经过时,新的参数为:
general_log=0/1
gereral_log_file=directory/file_name
下面的实验部分:
mysql> show variables like 'general%'
-> ;
+------------------+-----------------------------------+
| Variable_name | Value |
+------------------+-----------------------------------+
| general_log | OFF |
| general_log_file | /usr/local/mysql/data/rhel131.log |
+------------------+-----------------------------------+
2 rows in set (0.00 sec)
默认是关闭的,下面打开看看记录的内容:
mysql> set global general_log=1;
Query OK, 0 rows affected (0.03 sec)
mysql> show variables like 'general%'
-> ;
+------------------+-----------------------------------+
| Variable_name | Value |
+------------------+-----------------------------------+
| general_log | ON |
| general_log_file | /usr/local/mysql/data/rhel131.log |
+------------------+-----------------------------------+
2 rows in set (0.00 sec)
做几个查询:
mysql> select database();
+------------+
| database() |
+------------+
| NULL |
+------------+
1 row in set (0.00 sec)
mysql> use test;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| test |
+------------+
1 row in set (0.00 sec)
mysql> quit;
Bye
[root@rhel131 tmp]# tail -f /usr/local/mysql/data/rhel131.log
131022 4:30:21 8 Query show variables like 'general%'
131022 4:31:09 8 Query SELECT DATABASE()
131022 4:31:20 8 Query SELECT DATABASE()
131022 4:31:43 8 Query select database()
131022 4:32:00 8 Query SELECT DATABASE()
8 Init DB test
8 Query show databases
8 Query show tables
131022 4:32:04 8 Query select database()
131022 4:32:34 8 Quit
可以看出这个日志会将所有对数据库的操作都记录下来,可以相像如果这个数据库用的人非常多的话,日志量会增长的非常快。
如何来清空这个文件?
1.如果有必要的话先将日志文件进行备份。
2.通过mysqladmin flush-logs来重置日志文件。
[root@rhel131 data]# mysqladmin flush-logs