MySQL--日志管理
前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除

一、日志简介
MySQL日志主要分为4类,使用这些日志文件,可以查看MySQL内部发生的事情。这4类日志分别是:
- 错误日志:记录 MySOL服务的启动、运行或停止MySQL服务时出现的问题
- 查询日志:记录建立的客户端连接和执行的语句。
- 二进制日志:记录所有更改数据的语句,可以用于数据复制
- 慢查询日志:记录所有执行时间超过long_query_time的所有查询或不使用索引的查询
默认情况下,所有日志创建于 MySOL数据目录中。通过刷新日志,可以强制 MySQL 关闭和重新打开日志文件(或者在某些情况下切换到一个新的日志)。当执行一个FLUSH LOGS语句或执行 MySOLadmin fush-logs或MySOLadmin refresh 时,将刷新日志。
如果正使用MySQL复制功能,在复制服务器上可以维护更多日志文件,这种日志称为接替日志;
启动日志功能会降低 MySOL数据库的性能。例如,在查询非常频繁的MySOL数据库系统中如果开启了通用查询日志和慢查询日志,MySQL数据库会花费很多时间记录日志。同时,日志会占用大量的磁盘空间。
二、二进制日志
二进制用于记录MySQL数据库的变化。包含所有更新了数据或已经潜在更新数据的语句。语句以"事件"的形式保存,描述数据更改。还包含关于每个更新数据库的语句的执行时间信息。使用二进制日志的主要目的是最大可能的恢复数据库,因为二进制日志包含备份后进行的所有更新;
1、启动和设置二进制文件
默认情况下,二进制日志是开启的,可以通过修改MySQL的配置文件来启动和设置二进制日志;
my.ini中[MySQLd]组下面有关于二进制日志的设置;
log-bin [=path/ [filename]]
在my.ini配置文件中的[MySQLd]组下,添加以下几个参数与参数值:
[mysqld]log_bin # 定义开启二进制日志expire_logs_days = 10 # 定义MySQL清除过期日志的时间max_binlog_size = 100M # 定义了单个文件的大小限制,默认为1GB
添加完毕后,关闭并重新启动MySQL服务进程,即可打开二进制日志,然后通过show variables语句来查询日志设置:
mysql> show variables like 'log_%';
可以在自己机器上的 MySOL数据文件夹下面看到新生成的文件后缀为.000001和.index的两个文件,文件名称为默认主机名称。
数据库文件最好不要与日志文件放在同一个磁盘上,这样当数据库文件所在的磁盘发生故障时,可以使用日志文件恢复数据
2、查看二进制日志
show binary logs 语句可以查看当前的二进制日志文件个数及其文件名。MySQL 二进制日志并不能直接查看,如果要查看日志内容,可以通过MySOLbinlog命令查看。
show binary logs;c:\> mysqlbinary d:/mysql/log/binlog.00000.1
3、删除二进制日志
3.1、reset master语句删除所有二进制文件
reset master;
执行完该语句后,所有二进制日志将被删除,MySQL会重新创建二进制日志,新的日志文件扩展名将重新从000001开始编号
3.2、purge master logs删除指定日志文件
purge {master | binary} logs to 'log_name'purge {master | binary} logs before 'date'
第1种方法指定文件名,执行该命令将删除文件名编号比指定文件名编号小的所有日志文件。 第2种方法指定日期,执行该命令将删除指定日期以前的所有日志文件。
4、使用二进制日志恢复数据库
要想从二进制日志恢复数据,需要知道当前二进制日志文件的路径和文件名,一般可以从配置文件(my.cnf或者my.ini,文件名取决于MySQL服务器的操作系统)中找到路径,恢复语法如下:
mysqlbinlog [option] filename |mysql -uuser -ppass
比较重要的两对option参数是--start-date、--stop-date和--start-position、--stop-position
分别指定的是起始时间和结束时间点、开始位置和结束位置
# 使用MySQLbinlog恢复MySQL数据库到2024年1月1日00:00:00时的状态mysqlbinlog --stop-date="2024-01-01 00:00:00" D:\mysql\log\binlog\xdfsdfdsfse-bin.000003 | mysql -uuser -ppass
5、暂时停止二进制日志功能
通过SETSOL LOG BIN语句可以使用MySOL暂停或者启动二进制日志。
set sql_log_bin = {0|1}
三、错误日志
1、启动和设置错误日志
在默认情况下,错误日志会记录到数据库的数据目录下。如果没有在配置文件中指定文件名,则文件名默认为hostname.err。例如,MySQL所在的服务器主机名为MySQL-db,记录错误信息的文件名为MySQL-db.err。如果执行了FLUSH LOGS,错误日志文件会重新加载。 错误日志的启动和停止以及指定日志文件名都可以通过修改 my.ini(或者my.cnf)来配置。错误日志的配置项是 log-error。在[MySQLd]下配置 log-error,则启动错误日志。如果需要指定文件名,则配置项如下:
[mysqld]
log-error=[path / [file_name]]
2、查看错误日志
通过错误日志可以监视系统的运行状态,便于及时发现故障、修复故障。MySQL错误日志是以文本文件形式存储的,可以使用文本编辑器直接查看MySQL错误日志。
如果不知道日志文件的存储路径,可以使用SHOW VARIABLES语句查询错误日志的存储路径。SHOW VARIABLES 语如下:
mysql> show variables like 'log_error';
+---------------+-----------------------+
| Variable_name | Value |
+---------------+-----------------------+
| log_error | /data/mysql/error.log |
+---------------+-----------------------+
3、删除错误日志
四、通用查询日志
1、启动通用查询日志
MySQL服务器默认情况下并没有开启通用查询日志。通过show variables like"%general%;语句可以查询当前查询日志的状态。
mysql> show variables like '%general%';
+------------------+--------------------------------+
| Variable_name | Value |
+------------------+--------------------------------+
| general_log | OFF |
| general_log_file | /data/mysql/data/localhost.log |
+------------------+--------------------------------+
开启通用日志:
set @@golbal.general_log=1
# 关闭设置为0即可
2、查看通用日志
可以使用文本编辑器直接打开;
3、删除通用查询日志
-
在数据目录中找到日志文件所在目录C:ProgramData\MySQL\MySQL Server8.0\Data\,删除该后缀为.log 的文件。
-
通过 MySQLadmin -flush logs 命令建立新的日志文件,执行命令如下
mysqladmin-u rootp flush-logs
-
执行完该命令,可以看到 C:\ProgramData\MySQL\MySQL Server 8.0\Data\目录中已经建立了新的日志文件。
五、慢查询日志
慢查询日志是记录查询时长超过指定时间的日志。慢查询日志主要用来记录执行时间较长的查询语句。通过慢查询日志,可以找出执行时间较长、执行效率较低的语句,然后进行优化。
1、启动和设置慢查询日志
默认关闭,通过配置文件my.ini或者my.cnf中的log_slow_queries选项打开,也可咋MySQL服务启动的时候使用--log-slow-queries[=file_name]启动慢查询日志。启动慢查询时,需要在my.ini或者my.cnf文件中配置long_query_time选项指定阈值,某查询语句超出这个值,这个记录就被记录到慢查询日志文件中;
[mysqld]
log-slow-queries[=path / [file_name]]
long_query_time=n
2、查看慢查询日志
直接使用文本编辑器查看。
3、删除慢查询日志
和通用查询日志一样,慢查询日志也可以直接删除。删除后在不重启服务器的情况下,需要执行MySQLadmin -u root -p flush-logs重新生成日志文件,或在客户端登录到服务器执行flush logs语句重建日志文件。
致谢
在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。
学习永无止境,让我们共同进步!!
相关文章:
MySQL--日志管理
前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、日志简介 MySQL日志主要分为4类,使用这些日志文件,可以查看MySQL内部发生的事情。这4类日志分别是: 错误日志࿱…...
【Nuxt】内置组件和全局样式使用
内置组件 Nuxt3框架也提供一些内置的组件,常用的如下: SEO组件:Html、Body、Head、Title、Meta、Style、Link、NoScript、BaseNuxtWelcome:欢迎页面组件,该组件是nuxt/ui的部分NuxtLayout:是Nuxt自带的页面布局组件NuxtPage:是N…...
Java中spring boot validation 自定义注解使用
创建一个注解 Target({ElementType.FIELD})//需要写注解的三三个要素 Retention(RUNTIME) Documented Constraint(validatedBy {IsSystemYesNoVaildation.class})//绑定 在这里会报错 你需要去实现 public interface IsSystemYesNo {String message() default "数据字典&…...
Android笔试面试题AI答之广播(1)
文章目录 1.简述广播的分类和使用场景 ?一、广播分类二、使用场景举例总结 2.广播的两种注册方式的区别?1. 注册位置与方式2. 生命周期与持久性3. 接收广播的时机4. 安全性与权限5. 优先级与有序广播总结 3.简述广播发送和接收的原理 ?一、广…...
微软商店无法加载,检查你的连接-解决方案
微软商店默认直连国内的服务器。 如果有代理,关闭代理就可以恢复网络了。 但是我就是想用代理,我感觉代理更快, 搜索了很多办法,都没有生效。 然后我在哔哩哔哩的视频下方,看到大家留言,测试了一下&#x…...
数据结构实验报告-树与二叉树
桂 林 理 工 大 学 实 验 报 告 一、实验名称: 实验6 树和二叉树 二、实验内容: 1.编写二叉树的递归遍历算法,实现:给定一棵二叉树的“扩展先序遍历序列”,创建这棵二叉树。 (1)输出二叉树的先序遍历的结点序列。 (2)输出二…...
基于Django+MySQL球馆场地预约系统的设计与实现(源码+论文+部署讲解等)
博主介绍:✌全网粉丝10W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术栈介绍:我是程序员阿龙ÿ…...
8 MQTT
8 MQTT 1、相关概念2、MQTT的操作过程3、MQTT协议3.1 固定报文3.2 连接报文3.3 确认连接请求3.4 构造订阅报文3.5 订阅确认报文3.6 发布报文3.7 其他报文 1、相关概念 MQTT [1] 全名为Message Queuing Telemetry Transport,是一种基于TCP/IP协议上传输的轻量级通信…...
【文件系统】抽象磁盘的存储结构 CHS寻址法 | sector数组 | LAB数组
目录 1.为什么要抽象 2.逻辑抽象_版本1 2.1sector数组 2.2index转化CHS 3.逻辑抽象_版本2 3.1LBA数组 3.2LAB下标转化sector下标 文件其实就是在磁盘中占有几个扇区的问题❗文件是很多个sector的数组下标❗文件是有很多块构成的❗❗文件由很多扇区构成------>文件…...
基于python旅游推荐系统(源码+论文+部署讲解等)
博主介绍:✌全网粉丝10W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术栈介绍:我是程序员阿龙ÿ…...
Mysql大单表JSON优化
优化方案 MySQL 8.0.32 中,有几种方法可以优化存储 JSON 字符串的数据表。以下是一些建议,可以帮助您减少存储空间: 使用压缩: MySQL 8.0 支持表级压缩,可以通过修改表来启用压缩。 ALTER TABLE your_table ROW_FORMATCOMPRESS…...
电脑开机启动项管理小工具,绿色免安装
HiBit Startup Manager 是一款功能强大的启动项管理工具,旨在帮助用户管理和优化计算机的自动启动程序。该软件通过添加或删除应用程序、编辑它们的属性以及管理流程、服务、任务调度程序和上下文菜单来实现这一目标。 HiBit Startup Manager 提供了以下主要功能&a…...
一例AutoHotkey语言生成的文件夹病毒分析
概述 这是一个使用AutoHotkey语言编写的文件夹病毒,使用ftp服务器来当作C2,通过U盘传播,样本很古老,原理也很简单,这种语言的样本还是第一次见到,记录一下。 样本的基本信息 PE32库: AutoIt(3.XX)[-]编译…...
【机器学习第7章——贝叶斯分类器】
机器学习第7章——贝叶斯分类器 7.贝叶斯分类器7.1贝叶斯决策论7.2 朴素贝叶斯分类器条件概率的m估计 7.3 极大似然估计优点基本原理 7.4 贝叶斯网络7.5 半朴素贝叶斯分类器7.6 EM算法7.7 EM算法实现 7.贝叶斯分类器 7.1贝叶斯决策论 一个医疗判断问题 有两个可选的假设&#…...
C++ QT开发 学习笔记(3)
C QT开发 学习笔记(3) - WPS项目 标准对话框 对话框类说明静态函数函数说明QFileDialog文件对话框getOpenFileName()选择打开一个文件getOpenFileNames()选择打开多个文件getSaveFileName()选择保存一个文件getExistingDirectory()选择一个己有的目录getOpenFileUrl()选择打幵…...
【Python实战】如何优雅地实现文字 二维码检测?
前几篇,和大家分享了如何通过 Python 和相关库,自动化处理 PDF 文档,提高办公效率。 【Python实战】自动化处理 PDF 文档,完美实现 WPS 会员功能【Python实战】如何优雅地实现 PDF 去水印?【Python实战】一键生成 PDF…...
行为型设计模式3:模板方法/备忘录/解释器/迭代器
设计模式:模板方法/备忘录/解释器/迭代器 (qq.com)...
思源笔记软件的优缺点分析
在过去一年里,我用了很多款笔记,从word文档到onenote到语雀再到思源,最后坚定的选择了思源笔记 使用感受 首先是用word文档来记笔记,主要是开始时不知道笔记软件怎么好用,等到笔记越来越膨胀的时候我发现,…...
追问试面试系列:Dubbo
欢迎来到Dubbo系列,在面试中被问到Dubbo相关的问题时,大部分都是简历上写了Dubbo,或者面试官想尝试问问你对Dubbo是否了解。 本系列主要是针对面试官通过一个点就使劲儿往下问的情况。 面试官:说说你们项目亮点 好的面试官 我们这个项目的技术亮点在于采用了Spring Cloud…...
动手学深度学习V2每日笔记(卷积层)
本文主要参考沐神的视频教程 https://www.bilibili.com/video/BV1L64y1m7Nh/p2&spm_id_from333.1007.top_right_bar_window_history.content.click&vd_sourcec7bfc6ce0ea0cbe43aa288ba2713e56d 文档教程 https://zh-v2.d2l.ai/ 本文的主要内容对沐神提供的代码中个人不…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
