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

Linux-MySQL日志管理

1.日志概述

1.1什么是MySQL日志

MySQL 日志用于记录数据库运行期间各种行为动作(DDL,DML,DQL,DCL)。可以是文件、文本等存储形式。记录了 MySQL 从启动、运行到结束的整个生命周期中的关键行为。

1.2MySQL日志的作用

MySQL日志作用
1.故障排查帮助诊断数据库运行问题
2.性能分析识别性能瓶颈和慢查询
3.数据恢复提供数据恢复基础
4.安全审计记录数据库访问和操作行为
5.主从复制支持数据库复制与数据同步

1.3MySQL日志类型

MySQL日志分类
日志类型主要作用默认状态
错误日志(Error Log)记录启动、关闭、错误、警告信息开启
通用查询日志(General Query Log)记录所有客户端连接和执行的数据库关闭
二进制日志(Binary Log)记录所有修改数据库内容的操作,用于数据恢复和主从复制关闭(5.7)、开启(8.0)
慢查询日志(Slow Query Log)记录执行时间超过阈值的查询,用于性能优化关闭
中继日志(Relay Log)在主从复制中,从服务器用于存储主服务器二进制日志事件主从时开启
重做日志(Redo Log)InnoDB引擎特有,保持事务的持久性和恢复能力开启
回滚日志(Undo Log)记录事务回滚信息,支持事务的原子性开启

2.日志配置与管理

MySQL配置文件
/etc/my.cnf

2.0日志位置

MySQL日志位置
源码安装MySQL
数据存放目录/usr/local/mysql/data
错误日志/usr/local/mysql/data/mysqld.log
二进制日志/usr/local/mysql/data/binlog.000001
RPM包安装MySQL
数据存放目录/var/lib/mysql
错误日志/var/log/mysqld.log
二进制日志/var/lib/mysql/binlog.000001

2.1错误日志-Error Log

查看错误日志文件路径
SHOW VARIABLES LIKE 'log_error';

相关配置-vim /etc/my. cnf(需重启MySQL服务)

log-error = /usr/local/mysql/data/mysqld.log -更改改日志路径

2.2通用查询日志-General Query Log

查看通用查询日志文件路径
SHOW VARIABLES LIKE 'general%';

相关配置-vim /etc/my. cnf(需重启MySQL服务)

general_log = 1 -启动通用查询日志
general_log_file = /var/lib/mysql/general.log -更改日志路径

MySQL中可以执行
SET GLOBAL general_log = ON;
SET GLOBAL general_log_file = '/var/lib/mysql/general.log';

2.3慢查询日志-Slow Query Log

查看慢日志文件路径
SHOW VARIABLES LIKE 'slow_query%';

查看慢日志记录规定时间
SHOW VARIABLES LIKE 'long_query_time';

相关配置-vim /etc/my. cnf(需重启MySQL服务)

slow_query_log = 1 -启动慢查询日志

slow_query_log_file = /usr/local/mysql/data/slow_query.log -更改慢查询日志路径

long_query_time = 5 -设置慢查询被记录的时间

MySQL中可以执行

SET GLOBAL slow_query_log = ON;
SET GLOBAL slow_query_log_file = '/usr/local/mysql/data/slow_query.log';
SET GLOBAL long_query_time = 5.0;

2.4中继日志-Relay Log

中继日志用于主从复制环境,从服务器通过中继日志暂存从主服务器接收的二进制日志事件。

2.4.1以下命令均在从服务器执行

显示从库状态
SHOW SLAVE STATUS\G

显示主库状态
SHOW MASTER STATUS\G

查看中继日志相关参数
SHOW VARIABLES LIKE '%relay%';

中继日志信息表
SELECT * FROM mysql.slave_relay_log_info;

3.二进制日志

二进制日志记录所有数据变更,用于:数据恢复、主从复制、数据审计

3.1查看二进制日志状态

SHOW VARIABLES LIKE '%log_bin%';

3.2查看当前二进制日志文件

SHOW BINARY LOGS;

相关配置-vim /etc/my. cnf(需重启MySQL服务)

log-bin = /usr/local/mysql/data/mysql-bin -二进制日志文件前缀

server-id = 1 -服务器唯一标识符(主从复制必须)

binlog_format = ROW -修改二进制日志文件格式为ROW

SET GLOBAL binlog_format = 'ROW'; -动态修改日志格式

3.3二进制日志格式

二进制日志格式
格式特点优缺点使用场景
STATEMENT记录SQL语句本身,而不是数据本身文件小,复制效率高简单查询,无函数依赖
ROW记录每一行数据被修改了哪些内容,而不是SQL语句文件大,回复速度慢数据一致性要求高
MIXED根据执行的SQL语句自动选择使用什么格式管理相对复杂大多数生产环境

3.4查看二进制日志内容

3.4.1使用mysqlbilog工具查看

mysqlbinlog /usr/local/mysql/data/mysql-bin.000001

3.4.2解码查看详细内容

mysqlbinlog -v --base64-output=DECODE-ROWS /usr/local/mysql/data/mysql-bin.000001 mysqlbinlog -v /usr/local/mysql/data/mysql-bin.000001

3.5二进制日志管理

3.5.1查看所有二进制日志文件

SHOW BINARY LOGS;

3.5.2刷新日志,创建新的二进制日志文件

FLUSH LOGS;

3.5.3删除指定时间前的二进制日志

PURGE BINARY LOGS BEFORE '2026-01-19 12:00:00';

3.5.4删除所有二进制日志

RESET MASTER;

3.5.5临时关闭当前会话的二进制日志记录

SET sql_log_bin = 0;

3.6二进制日志恢复数据案例

实验环境

先创建db5数据库,在删除

3.6.1基于时间点恢复

首先查看binlog日志找到创建db5的记录

使用命令恢复数据
mysqlbinlog -v /var/lib/mysql/binlog.000011 --start-datetime="2026-01-19 20:30:34" --stop-datetime="2026-01-19 20:30:59" | mysql -uroot -p'Root@123'

3.6.2基于位置服务

首先查看binlog日志找到创建db5的记录
mysqlbinlog /var/lib/mysql/binlog.000011

使用命令恢复数据
mysqlbinlog -v /var/lib/mysql/binlog.000011 --start-position=601 --stop-position=706 | mysql -uroot -p'Root@123'

http://www.jsqmd.com/news/270706/

相关文章:

  • Gradio界面打不开?Live Avatar常见问题全解答
  • Fun-ASR-MLT-Nano-2512语音招聘:面试语音分析系统
  • 看了就想试!BSHM镜像打造专业级抠图效果
  • 避坑指南:用Docker一键部署Qwen2.5-7B-Instruct的常见问题解决
  • 没显卡怎么跑bert-base-chinese?云端GPU 5分钟部署,1块起步
  • 亲子阅读材料生成:故事配图自动化部署案例
  • 告别繁琐配置!YOLOE镜像开箱即用实战指南
  • PyTorch 2.8图像生成实战:没显卡也能玩,云端2块钱出图
  • 工业设备PCB防护涂层技术:新手入门必看
  • 麦橘超然影视宣传:电影海报风格迁移实战
  • 停止使用 innerHTML:3 种安全渲染 HTML 的替代方案
  • FSMN VAD部署教程:Linux环境从零配置指南
  • 开源语音技术突破:FSMN-VAD模型结构深度解析
  • CV-UNet应用案例:网店商品图批量标准化处理
  • SGLang性能实战对比:RadixAttention如何提升KV缓存命中率?
  • Speech Seaco Paraformer是否支持Ogg?小众格式兼容性测试报告
  • SenseVoice Small语音识别实战|附情感与声学事件标签提取技巧
  • NotaGen部署优化:多GPU并行生成配置指南
  • RexUniNLU性能优化:让中文NLP任务提速50%
  • 图像修复工具横向评测:GPEN在中文社区的适用性分析
  • 开源大模型落地新选择:Qwen3系列多场景应用实战指南
  • 5个SAM3创意玩法:云端GPU开箱即用,10元全体验
  • GPEN错误日志查看:排查问题的关键信息定位方法
  • Emotion2Vec+ Large成本效益分析:自建vs云服务ROI对比报告
  • IndexTTS 2.0+HTML:前端轻松嵌入AI语音播放器
  • DCT-Net实战案例:企业形象设计卡通化解决方案
  • 智能体是自主与它主的协同调度
  • AI初创公司首选:Qwen2.5-7B低成本商用部署完整指南
  • AI图像风格迁移新选择|DCT-Net GPU镜像实现高质量二次元虚拟形象生成
  • Elasticsearch内存模型配置:Kubernetes环境手把手教程