MySQL 9从入门到性能优化-通用查询日志

时间:2024-10-26 14:54:01

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-****博客

《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com)

MySQL9数据库技术_夏天又到了的博客-****博客

通用查询日志记录MySQL的所有用户操作,包括启动和关闭服务、执行查询和更新语句等。本节将介绍通用查询日志的启动、查看、删除等内容。

12.4.1  启动通用查询日志

MySQL服务器默认情况下并没有开启通用查询日志。通过SHOW VARIABLES LIKE '%general%';语句,可以查询当前通用查询日志的状态。

mysql> SHOW VARIABLES LIKE '%general%';
+------------------+---------------------+
| Variable_name    | Value               |
+------------------+---------------------+
| general_log      | OFF                 |
| general_log_file | X0NHUNO7YDZVSSI.log |
+------------------+---------------------+
2 rows in set, 1 warning (0.11 sec)

从结果中可以看出,通用查询日志的状态为OFF,表示通用日志是关闭的。

开启通用日志的方法如下:

mysql> set @@global.general_log=1;
Query OK, 0 rows affected (0.04 sec)

再次查询通用日志的状态:

mysql> SHOW VARIABLES LIKE '%general%';
+------------------+---------------------+
| Variable_name    | Value               |
+------------------+---------------------+
| general_log      | ON                  |
| general_log_file | X0NHUNO7YDZVSSI.log |
+------------------+---------------------+
2 rows in set, 1 warning (0.00 sec)

从结果中可以看出,通用查询日志的状态为ON,表示通用日志已经开启了。

如果想关闭通用查询日志,执行以下语句即可:

mysql> set @@global.general_log=0;

12.4.2  查看通用查询日志

通用查询日志中记录了用户的所有操作,通过查看通用查询日志,可以了解用户对MySQL进行的操作。通用查询日志是以文本文件的形式存储在文件系统中的,因此可以使用文本编辑器直接打开进行查看:Windows下可以使用记事本,Linux下可以使用vim、gedit等。

【例12.8】使用记事本查看MySQL通用查询日志。

使用记事本打开C:\ProgramData\MySQL\MySQL Server 9.0\Data\目录下的X0NHUNO7YDZVSSI.log,可以看到如下内容:

C:\Program Files\MySQL\MySQL Server 9.0\bin\mysqld.exe, Version: 9.0.1 (MySQL Community Server - GPL). started with:
TCP Port: 3306, Named Pipe: MySQL
Time                         Id Command      Argument
2024-07-18 17:24:32        1 Connect      root@localhost on 
    1 Query        select @@version_comment limit 1
2024-07-18 17:24:36        1 Query        SELECT DATABASE()
    1 Init DB        test
2024-07-18 17:24:53        1 Query         SELECT * FROM fruits
2024-07-18 17:24:55        1 Quit 

上面是笔者计算机上的通用查询日志的一部分,可以看到MySQL启动信息、用户root连接服务器与执行查询语句的记录。读者的文件内容可能与这里不同。

12.4.3  删除通用查询日志

通用查询日志会记录用户的所有操作,因此在用户查询、更新频繁的情况下,通用查询日志增长得很快。数据库管理员可以定期删除比较早的通用查询日志,以节省磁盘空间。

可以用直接删除日志文件的方式删除通用查询日志。要重新建立日志文件,可以使用mysqladmin -flush logs命令。

【例12.9】直接删除MySQL通用查询日志。

首先在数据目录中找到日志文件所在目录C:\ProgramData\MySQL\MySQL Server 9.0\Data\,删除后缀为“.log”的文件。

然后通过mysqladmin -flush logs命令建立新的日志文件:

C:\> mysqladmin –u root –p flush-logs

执行完该命令,可以看到C:\ProgramData\MySQL\MySQL Server 9.0\Data\目录中已经建立了新的日志文件。