MySQL各种日志类型介绍
概述
- MySQL 提供了多种日志类型,用于记录数据库的运行状态、操作历史和错误信息等,这些日志对于故障排查、性能优化、安全审计和数据恢复等具有重要作用。
- 以下是 MySQL 中常见的日志类型及其详细介绍
- 资料已经分类整理好:
https://pan.quark.cn/s/f52968c518d3
1. 错误日志(Error Log)
- 作用:记录 MySQL 服务器的启动、运行和关闭过程中的错误信息、警告信息和关键事件(如无法连接到数据库、表损坏、内存分配失败等)。
- 启用方式:默认启用,无需额外配置。
- 位置与文件名:
- 在配置文件(
my.cnf
或my.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 语句(如
SELECT
、INSERT
、UPDATE
等)。 - 启用方式:
- 配置文件中添加:
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)
- 作用:
- 记录所有修改数据的操作(如
INSERT
、UPDATE
、DELETE
、CREATE TABLE
等),用于主从复制(Master-Slave Replication)和数据恢复。 - 不记录
SELECT
和SHOW
等只读操作(除非开启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_size
和innodb_log_files_in_group
参数控制。
- 路径:默认在数据目录下,文件名为
ib_logfile0
、ib_logfile1
等。
回滚日志(Undo Log)
- 作用:记录事务修改前的数据旧值,用于实现事务的原子性(Atomicity)和一致性(Consistency),支持事务回滚和 MVCC(多版本并发控制)。
- 特点:
- 存储在共享表空间(
ibdata
)或独立表空间中(由innodb_undo_tablespaces
参数配置)。 - 自动管理,可通过
PURGE
操作清理过期的 undo 日志。
- 存储在共享表空间(
8. 中继日志索引文件(Relay Log Index File)
- 作用:与二进制日志索引类似,记录所有中继日志文件的名称和路径,供从服务器管理中继日志。
- 文件名:默认与中继日志文件名相同,后缀为
.index
(如hostname-relay-bin.index
)。
总结:各类日志的适用场景
日志类型 | 核心用途 | 生产环境建议 |
---|---|---|
错误日志 | 服务器故障排查 | 必须启用 |
慢查询日志 | SQL 性能优化 | 建议启用,定期分析 |
通用查询日志 | 全量操作审计(调试/安全场景) | 仅临时启用,避免长期开启 |
二进制日志 | 主从复制、数据恢复 | 主服务器必须启用,从服务器可选 |
中继日志 | 主从复制(从服务器) | 从服务器自动启用 |
事务日志 | 保证事务可靠性和 MVCC | InnoDB 自动管理,无需手动配置 |
日志管理最佳实践
- 定期轮换和清理:避免日志占用过多磁盘空间,可通过配置
expire_logs_days
自动删除旧日志。 - 权限控制:敏感日志(如通用查询日志)需限制访问权限,防止数据泄露。
- 备份 binlog:结合定期数据备份,可通过 binlog 恢复到任意时间点的数据。
- 监控慢查询:使用工具(如
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 地址范围,属于同一子网的设备可以直接通信(无需经过路由器)…...
芋道框架 - 接口设置匿名访问
芋道框架 - 接口设置匿名访问 在芋道(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 接口描述&…...