【Mysql】我在广州学Mysql 系列—— 有关日志管理的示例

ℹ️大家好,我是练小杰,今天星期四了,明天周五,美好的周末又要到了!!😆


本文是对MySQL日志管理内容进行练习,后续将添加更多相关知识噢,谢谢各位的支持🙏

复习: 【Mysql 日志管理详解】
数据库专栏:👉【数据库专栏】【Mysql练习题】

主页:👉【练小杰的CSDN】

“我是一只猫,快乐的星猫~~”

在这里插入图片描述

日志例题

    • 主页:👉【[练小杰的CSDN](https://blog.csdn.net/weixin_55767624?spm=1011.2415.3001.5343)】
    • "我是一只猫,快乐的星猫~~"
  • 前言
  • 查询日志的相关信息
    • 详细说明
  • 查看二进制日志文件个数及文件名
    • 输出结果说明
  • mysqlbinlog 命令查看日志
  • 删除创建时间比某个文件早的日志
  • 删除某个时间点之前的日志
  • 恢复 mysql日志
  • 记事本查看日志
    • 查看MySQL错误日志
    • 查看MySQL通用查询日志
  • 删除MySQL通用查询日志
  • 查看慢日志

在这里插入图片描述

前言

在练习本博客的示例之前,先看看👉【Mysql 日志管理详解】的博客内容噢!!
俗话说,“温故而知新,可以为师矣!!”

查询日志的相关信息

  • 使用SHOW VARIABLES语句查询日志设置,显示所有以 “log_” 开头的系统变量及其当前值。执行命令如下:
 SHOW VARIABLES LIKE 'log_%' ;
  • 以下结果是基于 MySQL 8.x 版本,实际结果可能会因 MySQL 版本、安装方式以及配置文件的不同而有所变化。
+-------------------------------+------------------------------+
| Variable_name                 | Value                        |
+-------------------------------+------------------------------+
| log_bin                       | ON                           |
| log_bin_basename              | /var/lib/mysql/binlog        |
| log_bin_index                 | /var/lib/mysql/binlog.index  |
| log_bin_trust_function_creators | OFF                         |
| log_error                     | /var/log/mysql/error.log     |
| log_output                    | FILE                         |
| log_queries_not_using_indexes | OFF                          |
| log_slow_admin_statements     | OFF                          |
| log_slow_slave_statements     | OFF                          |
| log_statements_unsafe_for_binlog | ON                        |
| log_throttle_queries_not_using_indexes | 0                      |
| log_timestamps                | UTC                          |
| log_warnings                  | 2                            |
| log_slow_queries              | OFF                          |
| log_slave_updates             | ON                           |
| log_syslog_tag                |                              |
+-------------------------------+------------------------------+

详细说明

log_bin:

  • 值: ON
  • 表示二进制日志已启用。二进制日志用于主从复制和备份恢复。

log_bin_basename:

  • 值: /var/lib/mysql/binlog
  • 表明二进制日志文件的基本路径和前缀。

log_bin_index:

  • 值: /var/lib/mysql/binlog.index
  • 说明: 二进制日志索引文件的路径。

log_bin_trust_function_creators:

  • 值: OFF
  • 说明: 是否信任存储函数创建者,允许创建带有不确定性的函数。

log_error:

  • 值: /var/log/mysql/error.log
  • 说明: 错误日志文件的路径。

log_output:

  • 值: FILE
  • 说明: 日志输出的目标。FILE 表示日志输出到文件,TABLE 表示输出到数据库表,NONE 表示不输出。

log_queries_not_using_indexes:

  • 值: OFF
  • 说明: 是否记录未使用索引的查询。启用后可以用于性能优化。

log_slow_admin_statements:

  • 值: OFF
  • 说明: 是否记录由管理员执行的慢查询。

log_slow_slave_statements:

  • 值: OFF
  • 说明: 是否记录从服务器上的慢查询。

log_statements_unsafe_for_binlog:

  • 值: ON
  • 说明: 是否记录被认为对二进制日志不安全的语句。

log_throttle_queries_not_using_indexes:

  • 值: 0
  • 说明: 每分钟记录未使用索引的查询次数限制。0 表示无限制。

log_timestamps:

  • 值: UTC
  • 说明: 日志时间戳的格式。UTC 表示使用协调世界时。

log_warnings:

  • 值: 2
  • 说明是否记录警告信息。这里的 2 表示记录所有警告。

log_slow_queries:

  • 值: OFF
  • 说明: 是否启用慢查询日志。OFF 表示未启用。

log_slave_updates:

  • 值: ON
  • 说明: 是否记录从服务器上的更新操作。启用后可以用于主从复制。

log_syslog_tag:

  • 值: ()
  • 说明: 当日志输出到 syslog 时,用于标记日志消息的标签。

查看二进制日志文件个数及文件名

  • 使用SHOW BINARY LOGS将查看二进制日志文件个数及文件名,执行命令及结果如下:
 SHOW BINARY LOGS;
 +------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |    107374 |
| mysql-bin.000002 |    209715 |
| mysql-bin.000003 |    524288 |
| mysql-bin.000004 |    1048576|
| mysql-bin.000005 |    2097152|
| mysql-bin.000006 |    3145728|
+------------------+-----------+

输出结果说明

  • Log_name: 二进制日志文件的名称
  • File_size: 二进制日志文件的大小,以字节为单位。

mysqlbinlog 命令查看日志

  • 使用mysqlbinlog查看二进制日志,执行命令及结果如下:
C:\> mysqlbinlog D:/MySQL/log/binlog.000001
  • 输出示例:
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;

# at 4
#220101 10:00:00 server id 1  end_log_pos 123 CRC32 0x5d7f1a2b  Start: binlog v 4, server v 8.0.23 created 220101 10:00:00
# Warning: this binlog is either in use or was not closed properly.
BINLOG '
dZ7f1A2BAAAAAAAAAAAQAMAAAAAAAQAMAAAAAAAAAAAAAADwAAANoYW5rZXRfaWQAAw==
'/*!*/;
# at 123
#220101 10:00:05 server id 1  end_log_pos 256 CRC32 0x1a2b3c4d  Query   thread_id=10    exec_time=0    error_code=0
SET TIMESTAMP=1640990405/*!*/;
SET @@session.time_zone='SYSTEM'/*!*/;
BEGIN
/*!*/;
# at 256
#220101 10:00:05 server id 1  end_log_pos 389 CRC32 0x4d5e6f70  Table_map: `test_db`.`users` mapped to number 108
# at 389
#220101 10:00:05 server id 1  end_log_pos 512 CRC32 0x708192a3  Write_rows: table id 108 flags: STMT_END_F

BINLOG '
BZwX2g8BAAAAMwAAAKsBAAAAAGF1a2VfdG9fY29tcGxldGVfc3RyaW5nAAADAAAABHRlc3RfZGIA
dXNlcnMAAwMAAQAAAB1c2VyX2lkAAQAAAB1c2VyX25hbWUEAAQAAAB1c2VyX3VzZXIAAQAA
'/*!*/;
### INSERT INTO `test_db`.`users`
### SET
###   user_id=1
###   user_name='Alice'
###   user_user='alice'
# at 512
#220101 10:00:05 server id 1  end_log_pos 584 CRC32 0x8192a3b4  Xid = 12345
COMMIT/*!*/;
# at 584
#220101 10:00:10 server id 1  end_log_pos 700 CRC32 0x5a6b7c8d  Query   thread_id=10    exec_time=0    error_code=0
SET TIMESTAMP=1640990410/*!*/;
SET @@session.time_zone='SYSTEM'/*!*/;
BEGIN
/*!*/;
# at 700
#220101 10:00:10 server id 1  end_log_pos 833 CRC32 0x6b7c8d9e  Table_map: `test_db`.`users` mapped to number 108
# at 833
#220101 10:00:10 server id 1  end_log_pos 956 CRC32 0x7c8d9e0f  Write_rows: table id 108 flags: STMT_END_F

BINLOG '
BZwX2g8BAAAAMwAAALcBAAAAAGF1a2VfdG9fY29tcGxldGVfc3RyaW5nAAADAAAABHRlc3RfZGIA
dXNlcnMAAwMAAQAAAB1c2VyX2lkAAQAAAB1c2VyX25hbWUEAAQAAAB1c2VyX3VzZXIAAQAA
'/*!*/;
### INSERT INTO `test_db`.`users`
### SET
###   user_id=2
###   user_name='Bob'
###   user_user='bob'
# at 956
#220101 10:00:10 server id 1  end_log_pos 1028 CRC32 0x8d9e0f1a  Xid = 12346
COMMIT/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

删除创建时间比某个文件早的日志

我们使用命令PURGE MASTER LOGS删除创建时间比binlog.000003早的所有日志文件。 首先,为了演示语句操作过程,准备多个日志文件,我们可以对MySQL服务进行多次重新启动。

  • 假设这里有10个日志文件,输出结果与上面类似,这里不再重复
 SHOW binary logs;
 +------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| binlog.000001    |    107374 |
| binlog.000002    |    209715 |
| binlog.000003    |    524288 |
| binlog.000004    |    1048576|
| binlog.000005    |    2097152|
| binlog.000006    |    3145728|
| binlog.000007    |    4194304|
| binlog.000008    |    5242880|
| binlog.000009    |    6291456|
| binlog.000010    |    7340032|
+------------------+-----------+

  • 执行删除命令如下:
 PURGE MASTER LOGS TO "binlog.000003";
Query OK, 0 rows affected (0.07 sec)
  • 执行完成后,再使用SHOW binary logs语句查看二进制日志
 SHOW binary logs;
 +------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| binlog.000003    |    524288 |
| binlog.000004    |    1048576|
| binlog.000005    |    2097152|
| binlog.000006    |    3145728|
| binlog.000007    |    4194304|
| binlog.000008    |    5242880|
| binlog.000009    |    6291456|
| binlog.000010    |    7340032|
+------------------+-----------+

删除某个时间点之前的日志

  • 使用PURGE MASTER LOGS删除2025年2月20日前创建的所有日志文件,执行命令及结果如下:
 PURGE MASTER LOGS BEFORE '20250220';
Query OK, 0 rows affected (0.05 sec)

语句执行之后,2025年2月20日之前创建的日志文件都将被删除,但2025年2月20日的日志会被保留(我们还可以根据自己系统中创建日志的时间修改命令参数)。

  • 再使用mysqlbinlog 查看指定日志的创建时间,如前面例子所示,查询命令如下:
C:\> mysqlbinlog D:\MySQL\log\mysql-bin.000001

恢复 mysql日志

  • 使用mysqlbinlog 恢复MySQL数据库到2025年2月20日 15:27:48时的状态,执行命令及结果如下:
mysqlbinlog --stop-date="2025-02-20 15:27:48" D:\MySQL\log\binlog\binlog.000008 | mysql –uuser –ppass

250220

记事本查看日志

查看MySQL错误日志

使用记事本查看MySQL错误日志,首先,通过SHOW VARIABLES语句查询错误日志的存储路径和文件名。

 SHOW VARIABLES LIKE 'log_error';

可以看到错误的文件是Kevin.err,位于MySQL默认的数据目录下,使用记事本打开该文件,可以看到MySQL的错误日志:

250220 16:45:14 [Note] Plugin 'FEDERATED' is disabled.
250220 16:45:14 InnoDB: The InnoDB memory heap is disabled
250220 16:45:14 InnoDB: Mutexes and rw_locks use Windows interlocked functions
250220 16:45:14 InnoDB: Compressed tables use zlib 1.2.3
250220 16:45:15 InnoDB: Initializing buffer pool, size = 46.0M
250220 16:45:15 InnoDB: Completed initialization of buffer pool
250220 16:45:15 InnoDB: highest supported file format is Barracuda.
250220 16:45:15 InnoDB: Waiting for the background threads to start
250220 16:45:16 InnoDB: 1.1.7 started; log sequence number 1679264
250220 16:45:16 [Note] Event Scheduler: Loaded 0 events
250220 16:45:16 [Note] C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld: ready for connections.
Version: '5.6.10-log'  socket: ''  port: 3306  MySQL Community Server (GPL)

这里只是错误日志文件的一部分,其中记载了系统的一些错误。

查看MySQL通用查询日志

我们使用记事本打开D:\mysql-5.6.10-win32\data\目录下的my-PC.log,可以看到如下内容:

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

删除MySQL通用查询日志

  • 直接删除MySQL通用查询日志,执行步骤如下:
  1. 查看my.ini(或者my.cnf)查看通用查询日志的文件目录,在my.ini中通用查询日志配置如下。
[mysqld]
log

可以看到,配置文件中没有指定日志文件名和存储目录,通用查询日志文件存储在MySQL默认数据目录中。

  1. 在数据目录中找到日志文件所在目录C:\Documents and Settings\All Users.WINDOWS\ Application Data\MySQL\MySQL Server 5.6\data\,删除该后缀为.err的文件。

  2. 通过mysqladmin –flush logs命令建立新的日志文件,执行命令如下。

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

执行完命令可看到,C:\Documents and Settings\All Users.WINDOWS\Application Data\MySQL\MySQL Server 5.6\data\目录中已经建立了新的日志文件Kevin.log

查看慢日志

查看慢查询日志,我们可以使用文本编辑器打开数据目录下的Kevin-slow.log文件,文件部分如下:

C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld, Version: 5.6.10-log (MySQL Community Server 
(GPL)). started with:
TCP Port: 3306, Named Pipe: (null)
Time Id Command Argument
# Time: 250220 17:50:35
# User@Host: root[root] @ localhost [127.0.0.1]
# Query_time: 136.500000  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1314697835;
SELECT BENCHMARK(100000000, PASSWORD('newpwd'));

本文有关Mysql数据库的日志相关示例已讲完了,明天再见啦👋
主页:【练小杰的CSDN】😆
ℹ️欢迎各位在评论区踊跃讨论,积极提出问题,解决困惑!!!
⚠️若博客里的内容有问题,欢迎指正,我会及时修改!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/972983.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JUC并发—8.并发安全集合二

大纲 1.JDK 1.7的HashMap的死循环与数据丢失 2.ConcurrentHashMap的并发安全 3.ConcurrentHashMap的设计介绍 4.ConcurrentHashMap的put操作流程 5.ConcurrentHashMap的Node数组初始化 6.ConcurrentHashMap对Hash冲突的处理 7.ConcurrentHashMap的并发扩容机制 8.Concu…

金融时间序列【量化理论】

业界常用的技术分析指标都与价格本身有关,而时间序列分析由于对数据平稳性的要求常常是基于收益率这样更加偏稳定的数据(收益率由于会涨停和跌停每天最多10%) 平稳性: 强平稳性:随时间变化,各个统计特征都…

nvm安装、管理node多版本以及配置环境变量【保姆级教程】

引言 不同的项目运行时可能需要不同的node版本才可以运行,由于来回进行卸载不同版本的node比较麻烦;所以需要使用node工程多版本管理。 本人在配置时,通过网络搜索教程,由于文章时间过老,或者文章的互相拷贝导致配置时…

8 SpringBootWeb案例(上): 查询【分页功能(分页插件)】、删除、新增、修改

文章目录 前言:SpringBootWeb案例1. 准备工作1.1 需求&环境搭建1.1.1 需求说明1.1.2 环境搭建1.2 开发规范1.2.1 开发规范-REST(不强求非要这种风格,传统风格有时候更方便)1.2.2 开发规范-统一响应结果和异常处理1.2.3 开发流程2. 部门管理2.1 查询部门2.1.1 原型和需求…

新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)

视频教程和更多福利在我主页简介或专栏里 (不懂都可以来问我 专栏找我哦) 如果对你有帮助你可以来专栏找我,我可以无偿分享给你对你更有帮助的一些经验和资料哦 目录: 一、XSS的三种类型: 二、XSS攻击的危害&#x…

用《软件方法》引导AI全流程高效开发

和“敏捷”的拍脑袋“试错”不同,《软件方法》一直强调严谨地思考、推导和建模。 如何尽量借助现有AI的力量,降低建模人员A→B→C→D的推导工作量,是一个非常有价值的课题。我们将用一个实例来分享和展示《软件方法》作者潘加宇的建议实践。…

全面收集中间件Exporter适配:从Redis到ActiveMQ,掌握监控数据采集的最佳实践

#作者:任少近 文章目录 说明:一 Redis的适配exporter版1.1 Redis的exporter源码版本1.2 Redis的exporter的releases版1.3 Redis_exporter版本选择理由1.4 Redis_exporter docer镜像 二 Zookeeper的适配exporter版2.1 Zookeeper的exporter源码版本2.2 Zo…

npm在install时提示要安装python问题处理

使用npm\yarn\pnpm下载以来的时候,一直提示python异常,有的项目安装了python之后,下载依赖还是异常 而且旧版本项目使用python2,新的使用Python3…很烦 解决方案1:cnpm 使用cnpm 安装教程: npm安装cnpm,解…

浅谈网络 | 容器网络之Cilium

目录 Cilium介绍Cilium是什么Cilium 主要功能特性为什么用Cilium? 功能概述组件概况BPF 与 XDPeBPF (Extended Berkeley Packet Filter)XDP (eXpress Data Path) Cilium介绍 Cilium是什么 Cilium 是一个开源网络和安全项目,专为 Kubernetes、Docker 和…

前端知识点---vue的声明周期(vue)

文章目录 创建挂载更新销毁 vue的生命周期有四个阶段: 创建 挂载, 更新和销毁 创建 是vue组件从创建到准备渲染的过程 dom还没挂载到页面中 进行了初始化工作: 初始化数据(data,props) . 设置计算属性computed 初始化方法 methods 绑定事件watch 创建阶段的钩子函数beforeCrea…

MySQL如何解决幻读?

目录 一、什么是幻读? 1.1 幻读的定义 1.2 幻读的示例 1.3 幻读产生的原因? 1.4?读已提交(Read Committed) 1.4.1 确定事务等级 1.4.2 非锁定读取 准备 示例 结论 1.4.3 锁定读取 准备 示例 分析 结论 1.5?可重…

Day15-后端Web实战-登录认证——会话技术JWT令牌过滤器拦截器

目录 登录认证1. 登录功能1.1 需求1.2 接口文档1.3 思路分析1.4 功能开发1.5 测试 2. 登录校验2.1 问题分析2.2 会话技术2.2.1 会话技术介绍2.2.2 会话跟踪方案2.2.2.1 方案一 - Cookie2.2.2.2 方案二 - Session2.2.2.3 方案三 - 令牌技术 2.3 JWT令牌2.3.1 介绍2.3.2 生成和校…

支持所有模拟器根证书一键植入方便快捷

qq 点-我咨-】--询 群 Android系统中的安全证书分为“用户证书”和“系统证书”两类。用户可以在设备的设置 -> 安全 -> 查看安全证书页面中,分别查看“系统”和“用户”两个独立的证书列表。其中,用户证书通常是通过浏览器下载安装,或…

WinMerge深度解析:开源免费的文件与文件夹比较利器

在文件与文件夹比较工具中,WinMerge凭借其开源免费、功能全面的特点,赢得了广大用户的喜爱。本文将对WinMerge进行深度解析,帮助大家更好地了解这款工具。 一、开源免费,持续更新 WinMerge是一款专为Windows设计的开源免费文件与文件夹比较工具,自2000年诞生以来,至今已…

OpenCV形态学操作

1.1. 形态学操作介绍 初识: 形态学操作是一种基于图像形状的处理方法,主要用于分析和处理图像中的几何结构。其核心是通过结构元素(卷积核)对图像进行扫描和操作,从而改变图像的形状和特征。例如: 腐蚀&…

PHP旅游门票预订系统小程序源码

🌍 旅游门票预订系统:一站式畅游新体验,开启您的梦幻旅程 🌟 一款基于ThinkPHPUniapp精心雕琢的旅游门票预订系统,正翘首以待,为您揭开便捷、高效、全面的旅游预订新篇章!它超越了传统预订平台…

第8章作业

接口ip配置 r2 [r2]interface GigabitEthernet 0/0/0 [r2-GigabitEthernet0/0/0]ip address 13.0.0.3 24 [r2-GigabitEthernet0/0/0]interface GigabitEthernet 0/0/1 [r2-GigabitEthernet0/0/1]ip address 100.1.1.254 24 [r2-GigabitEthernet0/0/1]interface GigabitEthernet…

连续学习、增量学习有哪些应用场景?

游戏场景 在游戏环境中,智能体需要不断学习如何在复杂的环境中取得高分。例如: Atari游戏:智能体通过观察游戏画面(状态)并输出操作(动作)来玩游戏。由于游戏的动态性和复杂性,智能体…

java项目之学术成果管理系统源码(ssm+前端+mysql)

项目简介 学术成果管理系统实现了以下功能: 宠物医院信息管理系统的主要使用者分为管理员:个人中心、用户管理、医生管理、医学知识管理、科室信息管理、医生信息管理、预约挂号管理、医嘱信息管理、药品信息管理、订单信息管理、留言板管理、系统管理…

【Spring+MyBatis】_图书管理系统(下篇)

图书管理系统上篇、中篇如下: 【SpringMyBatis】_图书管理系统(上篇)-CSDN博客 【SpringMyBatis】_图书管理系统(中篇)-CSDN博客 目录 功能5:删除图书 6.1 约定前后端交互接口 6.2 后端接口 6.3 前端…