我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL数据库——MySQL通用查询日志(General Query Log)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL数据库——MySQL通用查询日志(General Query Log)

通用查询日志(General Query Log)用来记录用户的所有操作,包括启动和关闭 MySQL 服务、更新语句和查询语句等。

默认情况下,通用查询日志功能是关闭的。可以通过以下命令查看通用查询日志是否开启,命令如下:

mysql> SHOW VARIABLES LIKE '%general%';+------------------+----------------------------------------------------------------+| Variable_name    | Value  |+------------------+----------------------------------------------------------------+| general_log      | OFF    || general_log_file | C:\ProgramData\MySQL\MySQL Server 5.7\Data\LAPTOP-UHQ6V8KP.log |+------------------+----------------------------------------------------------------+2 rows in set, 1 warning (0.01 sec)

从结果可以看出,通用查询日志是关闭的,general_log_file 变量指定了通用查询日志文件所在的位置。

启动和设置通用查询日志

在 MySQL 中,可以通过在 MySQL 配置文件添加 log 选项来开启通用查询日志,格式如下:

[mysqld]log=dir/filename

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

查看通用查询日志

如果希望了解用户最近的操作,可以查看通用查询日志。通用查询日志以文本文件的形式存储,可以使用普通文本文件查看该类型日志内容。

例 1

首先我们查看通用查询日志功能是否是开启状态,然后查询 tb_student 表的记录,SQL 命令和执行过程如下:

mysql> SHOW VARIABLES LIKE '%general%';+------------------+----------------------------------------------------------------+| Variable_name    | Value  |+------------------+----------------------------------------------------------------+| general_log      | ON     || general_log_file | C:\ProgramData\MySQL\MySQL Server 5.7\Data\LAPTOP-UHQ6V8KP.log |+------------------+----------------------------------------------------------------+2 rows in set, 1 warning (0.02 sec)mysql> use test;Database changedmysql> SELECT * FROM tb_student;+----+--------+| id | name   |+----+--------+|  1 | Java   ||  2 | MySQL  ||  3 | Python |+----+--------+3 rows in set (0.06 sec)

执行成功后,打开通用查询日志,这里日志名称为 LAPTOP-UHQ6V8KP.log,下面是通用查询日志中的部分内容:

C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe, Version: 5.7.29-log (MySQL Community Server (GPL)). started with:TCP Port: 3306, Named Pipe: MySQLTime                 Id Command    Argument2020-05-29T06:43:44.382878Z     7 Quit2020-05-29T06:44:10.001382Z     8 Connect root@localhost on  using SSL/TLS2020-05-29T06:44:10.007532Z     8 Query select @@version_comment limit 12020-05-29T06:44:11.748179Z     8 Query SHOW VARIABLES LIKE '%general%'2020-05-29T06:44:25.487472Z     8 Query SELECT DATABASE()2020-05-29T06:44:25.487748Z     8 Init DB test2020-05-29T06:44:35.390523Z     8 Query SELECT * FROM tb_student

可以看出,该日志非常清晰地记录了客户端的所有行为。

停止通用查询日志

通用查询日志启动后,可以通过两种方法停止该日志。一种是将 MySQL 配置文件中的相关配置注释掉,然后重启服务器,来停止通用查询日志。具体内容如下:

[mysqld]#log=dir\filename

上述方法需要重启 MySQL 服务器,这在某些场景,比如有业务量访问的情况下是不允许的,这时可以通过另一种方法来动态地控制通用查询日志的开启和关闭。

设置 MySQL 的环境变量 general_log 为关闭状态可以停止该日志,示例如下:

mysql> SET GLOBAL general_log=off;Query OK, 0 rows affected (0.00 sec)mysql> SHOW VARIABLES LIKE '%general_log%' \G*************************** 1. row ***************************Variable_name: general_log        Value: OFF*************************** 2. row ***************************Variable_name: general_log_file        Value: C:\ProgramData\MySQL\MySQL Server 5.7\Data\LAPTOP-UHQ6V8KP.log2 rows in set, 1 warning (0.01 sec)

删除通用查询日志

在 MySQL 中,可以使用 mysqladmin 命令来开启新的通用查询日志。新的通用查询日志会直接覆盖旧的查询日志,不需要再手动删除了。

mysqladmin 命令的语法如下:

mysqladmin -uroot -p flush-logs

需要注意的是,如果希望备份旧的通用查询日志,必须先将旧的日志文件拷贝出来或者改名。然后,再执行 mysqladmin 命令。

除了上述方法之外,还可以手工删除通用查询日志。删除之后需要重新启动 MySQL 服务。重启之后就会生成新的通用查询日志。如果希望备份旧的日志文件,可以将旧的日志文件改名,然后重启 MySQL 服务。

由于通用查询日志会记录用户的所有操作,如果数据库的使用非常频繁,通用查询日志将会占用非常大的磁盘空间,对系统性能影响较大。一般情况下,数据管理员可以删除很长时间之前的通用查询日志或关闭此日志,以保证 MySQL 服务器上的硬盘空间。

黑马程序员 MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括

来源地址:https://blog.csdn.net/Itmastergo/article/details/130880921

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL数据库——MySQL通用查询日志(General Query Log)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL慢查询日志(Slow Query Log)的实现

目录启动和设置慢查询日志查看慢查询日志例 1删除慢查询日志慢查询日志用来记录在 mysql 中执行时间超过指定时间的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率GYpdDvgU低,以便进行优化。通俗的说,MySQL 慢查询日
MySQL慢查询日志(Slow Query Log)的实现
2024-08-23

mysql数据库日志如何查看

在MySQL数据库中,主要有两种日志:错误日志和查询日志。以下是如何查看这两种日志的方法:错误日志:MySQL的错误日志记录了数据库服务启动、关闭、错误和警告等信息。错误日志通常存储在MySQL的数据目录下,文件名为hostname.err
mysql数据库日志如何查看
2024-04-09

Navicat中查看MySQL通用查询日志的方法

正常情况下,为了保证数据库的性能,通用查询日志处于不启用状态,并且在没开启过的情况下,磁盘中是不保存hostname.log的日志的。 1.查询日志状态 在Navica查询窗口中输入以下命令 show variables like 'gen
2023-08-17

MySQL错误日志与通用查询实例分析

这篇文章主要介绍“MySQL错误日志与通用查询实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL错误日志与通用查询实例分析”文章能帮助大家解决问题。MySQL日志文件系统的组成 a
2023-06-29

使用通用查询日志提高您的 MySQL 调试技巧

管理 mysql 数据库时,理解和解决问题通常需要详细查看系统中运行的查询。这就是 mysql 通用查询日志发挥作用的地方。它提供了所有客户端连接及其执行的查询的广泛记录,使其成为数据库管理员的重要工具。在本文中,我们将深入探讨 mysql
使用通用查询日志提高您的 MySQL 调试技巧
2024-10-18

MySQL数据库:子查询的应用

子查询子查询是一种常用计算机语言SELECT-SQL语言中嵌套查询下层的程序模块。当一个查询是另一个查询的条件时,称之为子查询。# 子查询的用法# 在字段select (select cName from courses where cNo = cID) as
2018-04-26

MySQL通过DQL实现对数据库数据的基本查询

本篇文章详细讲解了MySQL使用DQL查询数据库数据的基本方法。它涵盖了SELECT语句、WHERE子句、ORDERBY子句、LIMIT子句、DISTINCT关键字、HAVING子句、子查询和连接等概念。文中提供了示例代码,帮助读者理解这些概念并编写有效的查询语句。本文旨在帮助读者熟练使用DQL来检索、过滤和排序数据库中的数据。
MySQL通过DQL实现对数据库数据的基本查询
2024-04-02

编程热搜

目录