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

MySQL各种日志类型介绍

概述

  • MySQL 提供了多种日志类型,用于记录数据库的运行状态、操作历史和错误信息等,这些日志对于故障排查、性能优化、安全审计和数据恢复等具有重要作用。
  • 以下是 MySQL 中常见的日志类型及其详细介绍
  • 资料已经分类整理好:https://pan.quark.cn/s/f52968c518d3

1. 错误日志(Error Log)

  • 作用:记录 MySQL 服务器的启动、运行和关闭过程中的错误信息、警告信息和关键事件(如无法连接到数据库、表损坏、内存分配失败等)。
  • 启用方式:默认启用,无需额外配置。
  • 位置与文件名
    • 在配置文件(my.cnfmy.ini)中通过 log_error 参数指定路径和文件名,例如:log_error = /var/log/mysql/error.log
    • 若未指定,默认路径因系统而异(如 Windows 通常在数据目录,Linux 可能在 /var/log/mysql/)。
  • 重要性:是排查服务器启动失败、运行时异常的首要参考日志。

2. 慢查询日志(Slow Query Log)

  • 作用:记录执行时间超过阈值(long_query_time)的 SQL 语句,以及未使用索引的查询,用于分析和优化慢查询,提升数据库性能。
  • 启用方式
    • 修改配置文件,添加或修改以下参数:
      slow_query_log = ON          # 启用慢查询日志
      slow_query_log_file = /var/log/mysql/slow.log  # 日志文件路径
      long_query_time = 1          # 阈值(秒),默认 10 秒,建议设为较小值(如 1 秒)
      log_queries_not_using_indexes = ON  # 记录未使用索引的查询
      
    • 也可通过 SQL 语句临时启用:
      SET GLOBAL slow_query_log = ON;
      SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log';
      
  • 日志内容:包含查询时间、执行次数、锁等待时间、扫描行数、具体 SQL 语句等。
  • 分析工具:可使用 mysqldumpslow 或第三方工具(如 pt-query-digest)分析日志。

3. 通用查询日志(General Query Log)

  • 作用:记录所有连接到 MySQL 服务器的客户端请求,包括连接、断开连接和执行的 SQL 语句(如 SELECTINSERTUPDATE 等)。
  • 启用方式
    • 配置文件中添加:
      general_log = ON
      general_log_file = /var/log/mysql/general.log  # 日志文件路径
      
    • 临时启用:
      SET GLOBAL general_log = ON;
      SET GLOBAL general_log_file = '/var/log/mysql/general.log';
      
  • 注意事项
    • 该日志会产生大量数据,可能影响性能,仅建议在调试或审计场景下临时启用,生产环境通常关闭。
    • 日志内容包含敏感信息(如用户密码),需注意权限控制。

4. 二进制日志(Binary Log,简称 binlog)

  • 作用
    • 记录所有修改数据的操作(如 INSERTUPDATEDELETECREATE TABLE 等),用于主从复制(Master-Slave Replication)和数据恢复。
    • 不记录 SELECTSHOW 等只读操作(除非开启 log_bin_trust_function_creators 并使用 SELECT ... INTO OUTFILE 等特殊语句)。
  • 启用方式
    • 配置文件中添加:
      server_id = 1          # 主从复制时需唯一标识服务器
      log_bin = /var/log/mysql/mysql-bin.log  # 启用并指定日志路径
      expire_logs_days = 7   # 日志过期天数,自动删除旧日志
      
  • 日志格式
    • ROW:记录每行数据的变化,复制更安全,但日志体积较大。
    • STATEMENT:记录 SQL 语句,日志体积小,但可能存在主从数据不一致风险(如使用非确定性函数)。
    • MIXED:自动在两种格式间切换,默认模式。
  • 工具
    • mysqlbinlog:解析二进制日志内容。
    • 主从复制依赖 binlog 实现数据同步。

5. 中继日志(Relay Log)

  • 作用:仅用于主从复制架构中的从服务器(Slave),记录主服务器发送过来的 binlog 事件,供从服务器重放以保持数据同步。
  • 启用方式:从服务器默认自动生成,路径和文件名由 relay_log 参数控制(通常在数据目录下,如 hostname-relay-bin.xxxxxx)。
  • 与 binlog 区别
    • binlog 由主服务器生成,记录主库的变更;中继日志由从服务器生成,记录主库同步过来的变更。
    • 中继日志在复制完成后可自动删除或手动清理。

6. 二进制日志索引文件(Binary Log Index File)

  • 作用:记录所有二进制日志文件的名称和路径,便于 MySQL 服务器管理和查找 binlog 文件。
  • 文件名:默认与 binlog 文件名相同,后缀为 .index(如 mysql-bin.index)。
  • 注意:请勿手动修改索引文件,否则可能导致 binlog 管理异常。

7. 事务日志(InnoDB Redo Log 和 Undo Log)

重做日志(Redo Log)
  • 作用:记录 InnoDB 存储引擎的事务修改操作,用于保证事务的持久性(Durability)。当数据库崩溃时,通过重做日志恢复未提交的事务数据。
  • 特点
    • 顺序写入磁盘,效率高。
    • 大小固定,循环使用,由 innodb_log_file_sizeinnodb_log_files_in_group 参数控制。
  • 路径:默认在数据目录下,文件名为 ib_logfile0ib_logfile1 等。
回滚日志(Undo Log)
  • 作用:记录事务修改前的数据旧值,用于实现事务的原子性(Atomicity)和一致性(Consistency),支持事务回滚和 MVCC(多版本并发控制)。
  • 特点
    • 存储在共享表空间(ibdata)或独立表空间中(由 innodb_undo_tablespaces 参数配置)。
    • 自动管理,可通过 PURGE 操作清理过期的 undo 日志。

8. 中继日志索引文件(Relay Log Index File)

  • 作用:与二进制日志索引类似,记录所有中继日志文件的名称和路径,供从服务器管理中继日志。
  • 文件名:默认与中继日志文件名相同,后缀为 .index(如 hostname-relay-bin.index)。

总结:各类日志的适用场景

日志类型核心用途生产环境建议
错误日志服务器故障排查必须启用
慢查询日志SQL 性能优化建议启用,定期分析
通用查询日志全量操作审计(调试/安全场景)仅临时启用,避免长期开启
二进制日志主从复制、数据恢复主服务器必须启用,从服务器可选
中继日志主从复制(从服务器)从服务器自动启用
事务日志保证事务可靠性和 MVCCInnoDB 自动管理,无需手动配置

日志管理最佳实践

  1. 定期轮换和清理:避免日志占用过多磁盘空间,可通过配置 expire_logs_days 自动删除旧日志。
  2. 权限控制:敏感日志(如通用查询日志)需限制访问权限,防止数据泄露。
  3. 备份 binlog:结合定期数据备份,可通过 binlog 恢复到任意时间点的数据。
  4. 监控慢查询:使用工具(如 pt-query-digest)分析慢查询日志,优化 SQL 和索引。

通过合理使用和分析 MySQL 日志,可以有效提升数据库的稳定性、性能和安全性。

相关文章:

MySQL各种日志类型介绍

概述 MySQL 提供了多种日志类型,用于记录数据库的运行状态、操作历史和错误信息等,这些日志对于故障排查、性能优化、安全审计和数据恢复等具有重要作用。以下是 MySQL 中常见的日志类型及其详细介绍资料已经分类整理好:https://pan.quark.c…...

15.2【基础项目】使用 TypeScript 实现密码显示与隐藏功能

在现代 Web 应用中,允许用户切换密码的可见性不仅提升了用户体验,也让表单填写更便捷。使用 TypeScript 来实现这个功能,不仅具备强类型检查优势,还能提升代码的可维护性。 ✨ 我们要实现的功能 在这篇文章中,我们将…...

Django压缩包形式下载文件

通过web将minio上的文件以压缩包-文件夹-文件的形式下载到本地 import os from bx_mes import settings from io import BytesIO import zipfile from django.http import StreamingHttpResponse class FileRemote(GenericAPIView):def post(self,request):# 压缩包名folder_n…...

晚期NSCLC临床试验终点与分析策略

1. 案例背景 1.1 研究设计 1.1.1 适应症与分组 晚期非小细胞肺癌一线治疗,干预组为新型免疫检查点抑制剂联合化疗,对照组为化疗单药,随机双盲安慰剂对照III期试验。 1.1.2 目标框架 基于FDA或ICH指南,终点定义和分析策略影响试验科学性及监管审评。 2. 终点定义 2.1 主要…...

从比分滚动到数据革命:体育数据如何重构我们的观赛体验?

当凌晨三点的欧冠决赛与闹钟冲突时,当世界杯小组赛因时差难以全程跟进时,当代体育迷早已不再依赖电视直播 —— 打开手机里的比分网,实时跳动的体育大数据正构建着全新的观赛宇宙。这些曾经被视为 "辅助工具" 的平台,如…...

华为网路设备学习-23(路由器OSPF-LSA及特殊详解 二)

OSPF动态路由协议要求: 1.必须有一个骨干区域(Area 0)。有且仅有一个,而且连续不可分割。 2.所有非骨干区域(Area 1-n)必须和骨干区域(Area 0)直接相连,且所有区域之间…...

VPet虚拟桌宠,一款桌宠软件,支持各种互动投喂等. 开源免费并且支持创意工坊

📌 大家好,我是智界工具库,每天分享好用实用且智能的开源项目,以及在JAVA语言开发中遇到的问题,如果本篇文章对您有所帮助,请帮我点个小赞小收藏小关注吧,谢谢喲!😘 工具…...

新书速览|ASP.NET MVC高效构建Web应用

《ASP.NET MVC高效构建Web应用》 本书内容 《ASP.NET MVC高效构建Web应用》以目前流行的ASP.NET MVC 5、HTML和Razor为主线,全面系统地介绍ASP.NET MVC Web应用开发的方法,配套提供实例源码、PPT课件与作者一对一QQ答疑服务。 《ASP.NET MVC高效构建Web…...

MySQL 9.3 超详细下载安装教程(Windows版)附图文说明

MySQL 9.3 超详细下载安装教程(Windows版)附图文说明 💡 本文适用于Windows 10/11系统,包含完整的安装流程、环境配置和疑难解答。建议收藏备用! 一、下载MySQL 1. 访问官网 进入MySQL官方下载页面:http…...

Linux之软件包管理器(CentOS系统) —— yum

目录 一、软件包管理器 1-1什么是软件包 1-2 Linux软件生态 Linux下载软件的过程(Ubuntu、Centos、other) 操作系统的好坏评估---生态问题 1. 应用软件生态 2. 硬件兼容性 3. 开发者社区与开源生态 4. 商业合作与盈利模式 5. 用户粘性与使用习惯 6. 安全与合规生态 …...

webpack吐环境分析

需要解决的问题 扣取下来的webpack文件过大 解决思路 用ast将需要的代码扣下来 结果展示 实现步骤 第一步:我们得知道需要哪些模块 在入口处,增加模块记录 第二步,分析ast代码 通过分析发现,key 有三种值 分别为NumbericLiteral、StringLi…...

Unity InputField 滑动滚轮 实现对文本的滚动

一。效果演示: 二。实现原理: 创建一个脚本KeInputScroll.cs 继承InputField类和IScrollHandler接口。如下面代码所示: using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public class KeInputScroll : InputFiel…...

机械设计插件

在进行机械设计的时候,很多厂家对我们开放了外购件的模型,方便我们进行设计选购,但是尽管如此,我们在使用的时候还是很麻烦,我目前使用的是Part data manager来管理这些厂家的模型,使用方法非常简单。 首先…...

Monorepo 管理

以下是设计可扩展的前端架构(Monorepo 管理)的核心知识点总结: 一、Monorepo 的核心概念与优势 1. 什么是 Monorepo? 定义:将多个相关项目(包、应用、库)存储在一个代码仓库中的代码管理模式。对比 Multirepo:传统每个项目独立仓库,Monorepo 统一管理依赖、配置和工具…...

RabbitMQ核心机制——延迟队列

一、 什么是延迟队列? 消息发送之后,不想让消费者马上收到消息,而是等待特定时间后消费者才能拿到这条消息进行消费。 二、 如何实现延迟队列 RabbitMQ并没有直接支持延迟队列这一功能,如果需要实现延迟队列,有两种方法…...

华为云Flexus+DeepSeek征文|Flexus云服务器Dify-LLM资源部署极致体验Agent

前引:重磅来袭!本次以DeepSeek-V3/R1商用大模型和Dify-LLM应用平台一键部署为核心,专为新手打造“开箱即用”的AI开发体验。无论你是想快速搭建企业级AI应用,还是探索大模型落地的无限可能,只需跟随小编实现三步走&…...

IP 网段

以下是关于 IP 网段 的详细解析,涵盖基本概念、表示方法、划分规则及实际应用场景: 一、网段核心概念 1. 什么是网段? 网段指一个逻辑划分的 IP 地址范围,属于同一子网的设备可以直接通信(无需经过路由器&#xff09…...

芋道框架 - 接口设置匿名访问

芋道框架 - 接口设置匿名访问 在芋道(yudao)框架中,有些接口需要开放给外部访问,例如文件上传、验证码获取等。要实现接口的匿名访问,主要有两个步骤: 1. 在接口上添加 PermitAll 在需要匿名访问的接口方…...

熔盐核裂变反应堆:第四代核能技术的重要突破

在核能技术的演进历程中,第四代核能系统被寄予厚望,代表着更高的效率、更强的安全性和更广泛的资源适应能力。近年来,熔盐反应堆技术作为其中最具挑战性和变革性的方案之一,逐步走向工程化与实用化阶段。其中,液态燃料…...

鸿蒙OSUniApp 实现的日期选择器与时间选择器组件#三方框架 #Uniapp

UniApp 实现的日期选择器与时间选择器组件 在移动应用开发中,日期选择器和时间选择器是表单、预约、日程、打卡等场景中不可或缺的基础组件。一个好用的日期/时间选择器不仅能提升用户体验,还能有效减少输入错误。随着 HarmonyOS(鸿蒙&#…...

Linux云计算训练营笔记day16(Linux周期性计划任务、Python)

Linux云计算训练营笔记day16(Linux周期性计划任务、Python) 目录 Linux云计算训练营笔记day16(Linux周期性计划任务、Python)1.Linux 周期性计划任务2.Python 1.Linux 周期性计划任务 周期性计划任务 用途: 按照设置的时间间隔,为…...

对比Redis与向量数据库(如Milvus)在AI中的应用

对比Redis与向量数据库(如Milvus)在AI中的应用 在AI架构中,缓存系统的设计直接影响响应速度、资源成本以及推理路径是否高效。而面对不同的AI业务诉求,选用什么类型的缓存系统、如何搭配,往往是系统架构设计中必须深入…...

【Elasticsearch入门到落地】13、DSL查询详解:分类、语法与实战场景

接上篇《12、索引库删除判断以及文档增删改查》 上一篇我们讲解了如何判断索引库是否存在并删除它,以及如何对索引库中的文档进行增删改查操作。本篇我们进入ElasticSearch的DSL语法的详解。 Elasticsearch(ES)作为强大的分布式搜索引擎&…...

[欠拟合过拟合]机器学习-part10

7.欠拟合过拟合 7.1欠拟合 欠拟合是指模型在训练数据上表现不佳,同时在新的未见过的数据上也表现不佳。这通常发生在模型过于简单,或者是训练的次数不够,无法捕捉数据中的复杂模式时。欠拟合模型的表现特征如下: 训练误差较高。 …...

【windwos】文本编辑器Notepad++ 替代品Notepad--

一、N和N--对比介绍 曾经备受推崇的「Notepad」曾是Windows上的经典代码编辑器。然而,作者的一些政治言论已经让它被广大中国用户抛弃。 一个名为「Notepad--」的新编辑器,也是开源免费,功能和实用性也在尽可能接近。与此同时,「N…...

Linux基本指令篇 —— clear指令

clear 是 Linux 和 Unix 系统中用于清空终端屏幕的常用命令。它的作用是移除当前终端窗口中的所有可见内容,提供一个干净的界面,类似于“刷新”终端。以下是关于 clear 的详细解析: 目录 1. 基本用法 2. 实现原理 3. 常见场景 场景 1&…...

Anaconda 的基础教程,从入门到精通

以下是Anaconda的基础教程,从入门到精通: 一、Anaconda简介 Anaconda是一个用于科学计算的Python/R发行版,集成了1000+常用数据科学包,提供环境管理功能,解决包依赖冲突问题。适合数据科学、机器学习、深度学习等领域。 二、安装与配置 1. 下载与安装 官网下载:Anaco…...

阿里云DDoS防护:万一被“黑”了,如何更换IP地址?

阿里云DDoS防护:万一被“黑”了,如何更换IP地址“绝地反击”? 各位站长、运维老铁、业务负责人们,大家好!在如今这个网络世界,最让人提心吊胆的,莫过于遭遇**DDoS攻击(分布式拒绝服…...

机器学习笔记【Week2】

一、多变量线性回归(Multivariate Linear Regression) 为什么需要多变量? 现实问题中,一个目标可能受多个因素影响,比如预测房价时: x 1 x_1 x1​:面积 x 2 x_2 x2​:卧室数量 x 3…...

饭卡管理系统(接口文档)

一、管理员端口 1、学生列表查询 id(隐藏)姓名性别头像用户名卡号账号余额按钮1小马男http……小马2577293893#C12320.0删除 编辑2小飞男http……小飞#C123 删除 编辑 基本信息 请求路径:/information 请求方式:GET 接口描述&…...