Mysql教程

17.4通用查询日志

通用查询日志是用来记录用户的所有操作,包括启动和关闭MySQL服务、更新语句 和查询语句等。本节将为读者介绍通用查询日志的内容。

17.4.1启动和设置通用查询日志

默认情况下,通用查询日志功能是关闭的。通过my.cof或者my.ini文件的log选项可以开启通用查询日志。将log选项加入到my.cof或者my.ini文件的[mysqld]组中。形式如下:

# my.cnf (Linux操作系统下)或者my.ini(Windows操作系统下)
[mysqld]
log[=DIR\[filename]]

其中,DIR参数指定通用查询日志的存储路径;filename参数指定日志的文件名。如果不指定存储路径,通用查询日志将默认存储到MySQL数据库的数据文件夹下。如果不指定文件名,默认文件名为hostname.log。hostname是MySQL服务器的主机名。

17.4.2查看通用查询日志

用户的所有操作都会记录到通用查询日志中。如果希望了解某个用户最近的操作,可以查看通用查询日志。通用查询日志是以文本文件的形式存储的。Wind0wS操作系统可以 使用文本文件查看器查看.Linux操作操作系统下,可以使用vi工具或者使用gedit工具来查看。

【示例17-7】下面是笔者MySQL服务器的通用查询日志的部分内容.

MySQL, Version: 5.1.40-community-log (MySQL Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: /tmp/mysql.sock
Time	ld Command Argument
091122 16:30:48  1 Connect root@localhost on
                 1 Query select@@version_comment limit 1
091122 16:30:53  1 Query SELECT DATABASE()
                 1 InnoDB test
091122 16:31:16  1 Query DELTE FROM score WHERE id=8
091122 16:31:32  1 Query DELETE FROM score WHERE id=8
091122 16:31:37  1 Query DELETE FROM score WHERE id=9
091122 16:31:41  1 Query DELETE FROM score WHERE id=10
091122 16:31:46  1 Query DESC score
091122 16:32:41  1 Query	INSERT INTO score VALUES(NULL,905,'英语',84)
091122 16:32:44  1 Quit
091122 17:30:36  2 Connect root@localhost on
                 2 Query select @@version comment limit 1
091122 17:30:40  2 Query	SELECT DATABASE()
                 2 InitDB	test
091122 17:30:46  2 Query	SELECT * FROM score
091122 17:31:00  2 Query	DELETE FROM score WHERE id=11
091122 18:30:27  2 Quit

17.4.3删除通用查询日志

通用査询日志会记录用户的所有操作。如果数据库的使用非常频繁,那么通用查询日志志将会占用非常大的磁盘空间。数据库管理员可以删除很长时间之前的通用查询日志,以保证MySQL服务器上的硬盘空间。本小节将介绍删除通用查询日志的方法。

MySQL数据库中,也可以使用mysqladmin如命令来开启新的通用查询日志.新的通用查询日志会直接覆盖旧的查询日志,不需要再手动删除了。mysqladmin命令的语法如下:

mysqladmin nj root -p flush-logs

如果希望备份旧的通用查询日志,那么就必须先将旧的日志文件拷贝出来或者改名。 然后,再执行上面的mysqladmin命令。除了上述方法以外,可以手工删除通用查询日志。删除之后需要重新启动MySQL服务。重启之后就会生成新的通用查询日志。如果希望备份旧的日志文件,可以将旧的日志 文件改名,然后重启MySQL服务。



关注微信获取最新动态