当前位置: 首页 > news >正文

Mysql中关于查询日志的配置详解

查询日志

MySQL中的查询日志保存在文本文件中,能够记录MySQL中的所有数据操作。


开启查询日志

MySQL默认情况下没有开启查询日志,如果需要开启查询日志,则需要在 my.cnf 文件或者 my.ini 文件的 [mysqld] 选项下进行配置。例如,配置开启 MySQL 的查询日志:


[mysqld]
general_log = 1
general_log_file = /data/mysql/log/general_log/general_statement.log
log_output = FILE

各种配置说明如下:

·general_log:表示是否开启查询日志。此项设置为 1 或者不带任何值,都可以开启查询日志;设置为0或者在 my.cnf 文件或 my.ini 文件中没有配置此项,则不会开启查询日志。

·general_log_file:查询日志的文件目录,笔者这里配置的是日志的完整路径。

·log_output:表示日志的存储方式,可以有 3 种取值,TABLE 表示将查询日志存储到数据表中;FILE 表示将查询日志保存到文件中;NONE表示不保存日志信息到数据表和文件中。

注意:开启查询日志时,如果没有显示指定 general_log_file 选项和 log_output 选项的值,则 MySQL 会将查询日志保存到 DATADIR 选项指定的目录下(也就是数据库中的数据目录),默认的文件名称为 host_name.log ,其中,host_name 为 MySQL 的主机名。

配置开启查询日志之前,首先查看 /data/mysql/log/general_log 目录下的文件信息。

[root@binghe150 ~]# 
[root@binghe150 ~]# ll /data/mysql/log/general_log/
total 0

当未配置 MySQL 的查询日志时,/data/mysql/log/general_log/ 目录下不存在任何文件。

开启查询日志配置完成后,需要重启MySQL服务才能生效。

[root@binghe150 ~]# service mysqld restart
Shutting down MySQL..... SUCCESS! 
Starting MySQL........ SUCCESS!

也可以在MySQL命令行中指定开启MySQL的查询日志。

mysql> SET GLOBAL general_log = 1;
Query OK, 0 rows affected (0.01 sec)
mysql> SET GLOBAL general_log_file = '/data/mysql/log/general_log/general_statement.log'; 
Query OK, 0 rows affected (0.00 sec)
mysql> SET GLOBAL log_output = 'file';
Query OK, 0 rows affected (0.00 sec)

此时,再次查看 /data/mysql/log/general_log/目录下的文件。

[root@binghe150 ~]# ll /data/mysql/log/general_log/
total 4
-rw-r----- 1 mysql mysql 547 Jan 17 11:39 general_statement.log

当开启查询日志配置完成后,MySQL会自动创建general_log_file选项指定的日志文件。

查看查询日志

如果log_output选项配置的是将查询日志保存到文件中,则日志文件的格式为纯文本格式,可以直接查看日志文件中的内容。


cat /data/mysql/log/general_log/general_statement.log

mysql查询日志记录
查询日志中记录了所有的SQL语句的信息。

删除查询日志

  1. 直接找到日志目录即可删除日志记录。
rm -rf /data/mysql/log/general_log/general_statement.log
  1. 刷新日志
  • 刷新前日志记录如下:
    在这里插入图片描述

  • 刷新查询日志

    • 可以在MySQL命令行中执行如下命令刷新日志。
    mysql> FLUSH LOGS;
    Query OK, 0 rows affected (0.02 sec)
    
    • 也可以在服务器命令行中执行如下命令刷新日志。
    [root@binghe150 ~]# mysqladmin -uroot -p flush-logs
    Enter password:
    

日志刷新成功,再次查看 /data/mysql/log/general_log 目录下的文件。

  • 执行刷新命令后日志记录如下:
    在这里插入图片描述

关闭查询日志

关闭查询日志就比较简单了,只需要在 my.cnf 文件或者 my.ini 文件的 [mysqld] 选项下,将 general_log 选项配置为 0 ,或者删除 general_log 选项。

[mysqld]
general_log = 0

配置完成后,重启 MySQL 才能生效。

也可以在 MySQL 命令行中执行如下命令关闭查询日志。

mysql> SET GLOBAL general_log = 0;
Query OK, 0 rows affected (0.00 sec)

当关闭查询日志后删除查询日志,再执行刷新日志的操作,MySQL 将不再重新创建查询日志文件。

http://www.lryc.cn/news/18808.html

相关文章:

  • 外包整整干了一年,废了。。。
  • 内网渗透(五十六)之域控安全和跨域攻击-非约束委派攻击
  • 初阶C语言——指针【详解】
  • MySQL tinyint(1) 、int(32) 与 varchar(255) 长度含义不同
  • 搜索旋转排序数组、路径总和 II、拆分数字
  • QT自绘标题和边框
  • 数据库浅谈之 LLVM
  • Unable to connect to Redis无法连接到Redis
  • Feign、Ribbon、Hystrix
  • SpringCloud - Nacos注册发现
  • Socket编程、协议理解
  • Idea集成码云
  • 并发编程学习篇ReentrantLock设计思想剖析
  • 区分效度全流程分析
  • 【华为OD机试模拟题】用 C++ 实现 - 找数字(2023.Q1)
  • 从0开始写Vue项目-Vue实现用户数据批量上传和数据导出
  • 企业容器云管理平台选型指南
  • OpenGL超级宝典学习笔记:着色器存储区块、原子内存操作、内存屏障
  • SpringMVC框架知识详解(入门版)
  • 25-动画和过渡
  • Linux 操作系统原理 — 虚拟内存管理
  • 保持超低温环境新方法:功耗降至十分之一!
  • 论文投稿指南——中文核心期刊推荐(音乐)
  • es-10搜索推荐suggest
  • VMware ESXi 7.0 Update 3k - 领先的裸机 Hypervisor (sysin Custom Image)
  • JVM整体分析篇
  • 【Python入门第十七天】Python While 循环
  • 怎样激发读者好奇心?短视频营销之场景化
  • 【LeetCode】剑指 Offer 14- II. 剪绳子 II p96 -- Java Version
  • 【红黑树】红黑树插入操作相关的细节和疑难拆解分析