news 2026/4/23 3:22:56

Linux-MySQL日志管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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'

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 3:22:54

没显卡怎么跑bert-base-chinese?云端GPU 5分钟部署,1块起步

没显卡怎么跑bert-base-chinese?云端GPU 5分钟部署,1块起步 你是不是也遇到过这种情况:作为一名前端开发者,想在项目里加个中文文本分类功能,比如自动识别用户评论是好评还是差评。你查了一圈,发现最靠谱的…

作者头像 李华
网站建设 2026/4/20 10:50:54

一文说清PCAN在Windows中的API调用方法

一文说清PCAN在Windows中的API调用方法 从一个“收不到数据”的坑说起 你有没有遇到过这种情况: 代码写得严丝合缝,设备也插上了,驱动看着正常,可就是 收不到任何CAN帧 ?调试半天才发现,原来是波特率设…

作者头像 李华
网站建设 2026/4/20 14:47:19

中文BERT填空模型优化:推理速度提升方案

中文BERT填空模型优化:推理速度提升方案 1. 引言 1.1 BERT 智能语义填空服务的工程挑战 随着自然语言处理技术的发展,基于预训练语言模型的语义理解应用逐渐走向落地。其中,中文 BERT 模型因其强大的上下文建模能力,在成语补全…

作者头像 李华
网站建设 2026/4/20 14:48:35

Z-Image-Turbo批量处理:一次提交多组参数生成图像

Z-Image-Turbo批量处理:一次提交多组参数生成图像 Z-Image-Turbo是一款基于Gradio构建的图像生成工具,其UI界面简洁直观,支持用户通过图形化操作完成复杂图像生成任务。该工具特别适用于需要进行多轮参数实验、批量图像合成或快速原型设计的…

作者头像 李华
网站建设 2026/4/22 22:10:14

AI图像风格迁移新选择|DCT-Net GPU镜像实现高质量二次元虚拟形象生成

AI图像风格迁移新选择|DCT-Net GPU镜像实现高质量二次元虚拟形象生成 随着AI图像生成技术的快速发展,人像卡通化作为风格迁移的重要应用方向,正广泛应用于社交头像、虚拟角色设计和数字内容创作等领域。传统的卡通化方法往往依赖复杂的后期处…

作者头像 李华
网站建设 2026/4/18 14:25:23

IQuest-Coder-V1实战案例:游戏开发逻辑自动生成系统

IQuest-Coder-V1实战案例:游戏开发逻辑自动生成系统 1. 引言:AI驱动的游戏开发新范式 随着大语言模型在代码生成领域的持续突破,传统软件工程的开发流程正经历深刻变革。特别是在游戏开发这一高度依赖逻辑设计、状态管理和复杂交互的领域&a…

作者头像 李华