MySQL体系架构解析(五):读懂MySQL日志文件是优化与故障排查的关键

MySQL文件

日志文件

在服务器运行过程中,会产生各种各样的日志,比如常规的查询日志,错误日志、二进制日志、 redo 日志和 Undo 日志等,日志文件记录了影响 MySQL 数据库的各种类型活动。

常见的日志文件有:错误日志(error log)、慢查询日志(slow query log)、查询日志(query log)、二进制文件(bin log)。

错误日志

错误日志文件对 MySQL 的启动、运行、关闭过程进行了记录。遇到问题时,应该首先查看该文件以便定位问题。该文件不仅记录了所有的错误信息,也记录了一些警告信息或正确信息。

用户可以通过下面命令来查看错误日志文件的位置

show variables liek 'log_error' \G;

在这里插入图片描述
当 MySQL 不能正常启动时,第一个必须查找的文件应该就是错误日志文件,该文件记录了错误信息。

慢查询日志

慢查询日志可以帮助定位可能存在问题的 SQL 语句,从而进行 SQL 语句层面的优化。
我们已经知道了慢查询日志可以帮我们定位可能存在问题的SQL语句,从而进行SQL语句层面的优化。但是默认值是关闭的,需要我们手动开启。

show variables like 'slow_query_log';

在这里插入图片描述

-- 开启慢日志查看 0关闭 1开启
set global slow_query_log = 1;

慢是广义的概念,到底多慢算慢呢?MySQL中设定了一个阈值,将运行时间超过改值的所有SQL语句都记录到慢查询日志中。long_query_time 参数的值就是这个阈值。默认是10,代表是10秒。

show variables like 'long_query_time';

在这里插入图片描述
当然也可以设置

set global long_query_time = 0;

默认10秒,这里为了演示方便设置为0。
同时对于运行的SQL语句没有使用索引,MySQL 数据库也可以将这条SQL语句记录到慢查询日志文件。

-- 未使用索引是否记录慢查询日志参数 0关闭(默认) 1开启
show variables like '%log_queries_not_using_indexes%';

在这里插入图片描述

记录的慢查询日志在哪里看呢?这里还有一个参数控制。

show variables like '%slow_query_log_file%';

windows
在这里插入图片描述
linux
在这里插入图片描述

查询日志

查询当前的通用日志文件是否开启

show variables like '%general_log%';

在这里插入图片描述

-- 开启通用日志查询
set global general_log = on;
-- 关闭通用日志查询
set global general_log = off;

在这里插入图片描述
查询日志记录了所有对MySQL数据库请求的信息,无论这些请求是否得到了正确的执行。
默认文件名:hostName.log,比如centosvm.log
在这里插入图片描述

二进制日志(binlog)

二进制日志记录了所有的 DDL 和 DML 语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗时间,MySQL 的二进制日志是事务安全型的。它有以下几种作用。

  • 恢复(recovery):某些数据的恢复需要二进制日志,例如,在一个数据库全备文件恢复后,用户可以通过二进制文件进行point-in-time的恢复
  • 复制(replication):其原理与恢复类似,通过复制和执行二进制日志使一台远程的 MySQL 数据库(一般称为slave或standy)与一台MySQL数据库(一般称为master或primary)进行实时同步
  • 审计(audit):用户可以通过二进制日志中的信息来进行审计,判断是否有对数据库进行注入的攻击

log-bin 参数用来控制是否开启二进制日志,默认为关闭。如果想要开启二进制日志功能,可以在MySQL的配置文件中指定如下格式
“name”为二进制日志文件的名称
如果不提供name,那么数据库会使用默认的日志文件名(文件名为主机名,后缀名为二进制日志的序列号),且文件保存在数据库所在的目录(datadir下)
启用/设置二进制日志文件(name可省略)
log-bin=name;
配置以后,就会在数据目录下产生类似于:
在这里插入图片描述
bin_log.00001即为二进制日志文件;bin_log.index为二进制的索引文件,用来存储过往产生的二进制日志序号,通常情况下,不建议手动修改这个文件。

二进制日志文件在默认情况下并没有启动,需要手动指定参数来启动。开启这个选项会对MySQL的性能造成影响,但是性能损失十分有限。根据MySQL官方手册中的测试说明,开启二进制日志会使性能下降1%。

show variables like 'log_bin';

在这里插入图片描述
mysql安装目录下修改my.cnf

log_bin=mysql-bin
binlog-format=ROW
server-id=1
expire_logs_days =30

在这里插入图片描述
在这里插入图片描述

其他的数据文件

除了我们上边说的这些用户自己存储的数据以外,数据文件下还包括为了更好运行程序的一些额外文件,当然这些文件不一定会放在数据目录下,而且可以在配置文件或者启动时另外指定存放目录。主要包括以下这几种类型的文件。

  • 服务器进程文件
    我们知道每运行一个MySQL服务器程序,都意味着启动一个进程。MySQL服务器会把自己的进程ID写入到一个pid文件中。
  • socket文件
    当用UNIX域套接字方式进行连接时需要的文件。

在这里插入图片描述

  • 默认/自动生成的SSL和RSA证书和密钥文件
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/84510.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

湖南省网络建设与运维赛项竞赛规程及样题

湖南省职业院校技能竞赛样题 赛题说明 一、竞赛内容 “网络建设与运维”竞赛共分三个部分,其中: 第一部分:职业规范与素养 ( 5 分) 第二部分:网络搭建及安全部署项目 ( 50 分&#xff09…

华为云Flexus+DeepSeek征文 | 基于华为云ModelArts Studio搭建AnythingLLM聊天助手

华为云FlexusDeepSeek征文 | 基于华为云ModelArts Studio搭建AnythingLLM聊天助手 引言一、ModelArts Studio平台介绍华为云ModelArts Studio简介ModelArts Studio主要特点 二、AnythingLLM介绍AnythingLLM 简介AnythingLLM主要特点AnythingLLM地址 三、安装AnythingLLM应用下载…

板凳-------Mysql cookbook学习 (十--5)

6.11 计算年龄 2025年6月11日星期三 --创建表、初始化数据 drop table if exists sibling; create table sibling (name char(20),birth date );insert into sibling (name,birth) values(Gretchen,1942-04-14); insert into sibling (name,birth) values(Wilbur,1946-11-28)…

SAP RESTFUL接口方式发布SICF实现全路径

其他相关资料帖可参考: https://blog.csdn.net/woniu_maggie/article/details/146210752 https://blog.csdn.net/SAPmatinal/article/details/134349125 https://blog.csdn.net/weixin_44382089/article/details/128283417 【业务场景】 外部系统不想通过RFC (需…

在windows中安装或卸载nginx

首先在nginx的安装目录下cmd查看nginx的版本: 在看windows的服务中是否nginx注册为服务了 如果注册了服务就先将服务卸载了 在nginx的安装目录cmd执行命令 NginxService.exe uninstall “NginxService”是对应的注册的服务名称 关闭所有的相关nginx的服务这个也…

FaceFusion 技术深度剖析:核心算法与实现机制揭秘

在 AI 换脸技术蓬勃发展的浪潮中,FaceFusion 凭借其出色的换脸效果和便捷的操作,成为众多用户的首选工具。从短视频平台上的创意恶搞视频,到影视制作中的特效合成,FaceFusion 都展现出强大的实用性。而这一切的背后,是…

2. Web网络基础 - 协议端口

深入解析协议端口与netstat命令:网络工程师的实战指南 在网络通信中,协议端口是服务访问的门户。本文将全面解析端口概念,并通过netstat命令实战演示如何监控网络连接状态。 一、协议端口核心知识解析 1. 端口号的本质与分类 端口范围类型说…

嵌入式学习笔记 - freeRTOS vTaskPlaceOnEventList()函数解析

vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait ); 函数第一个参数为消息队列等待插入链表, void vTaskPlaceOnEventList( List_t * const pxEventList, const TickType_t xTicksToWait ) { configASSERT( pxEventList ); /…

Ubuntu 配置使用 zsh + 插件配置 + oh-my-zsh 美化过程

Ubuntu 配置使用 zsh 插件配置 oh-my-zsh 美化过程 引言zsh 安装及基础配置oh-my-zsh 安装及美化配置oh-my-zsh 安装主题美化配置主题自定义主题 插件安装及配置官方插件查看及启用插件安装 主题文件备份.zshrcre5et_self.zsh-theme 同步发布在个人笔记Ubuntu 配置使用 zsh …

Xilinx FPGA 重构Multiboot ICAPE2和ICAPE3使用

一、FPGA Multiboot 本文主要介绍基于IPROG命令的FPGA多版本重构,用ICAP原语实现在线多版本切换。需要了解MultiBoot Fallback点击链接。 如下图所示,ICAP原语可实现flash中n1各版本的动态切换,在工作过程中,可以通过IPROG命令切…

springMVC-11 中文乱码处理

前言 本文介绍了springMVC中文乱码的解决方案,同时也贴出了本人遇到过的其他乱码情况,可以根据自身情况选择合适的解决方案。 其他-jdbc、前端、后端、jsp乱码的解决 Tomcat导致的乱码解决 自定义中文乱码过滤器 老方法,通过javaW…

mysql-innoDB存储引擎事务的原理

InnoDB 存储引擎支持 ACID 事务,其事务机制是通过 Redo Log(重做日志)、Undo Log(回滚日志) 和 事务日志系统 来实现的。下面详细解析 InnoDB 事务的工作原理。 1.事务的基本特性(ACID) 特性描…

在GIS 工作流中实现数据处理

通过将 ArcPy 应用于实际的 GIS 工作流,我们可以高效地完成数据处理任务,节省大量时间和精力。接下来,本文将结合具体案例,详细介绍如何运用 ArcPy 实现 GIS 数据处理的全流程。 数据读取与合并 假设我们有多个 shapefile 文件&a…

第十四届蓝桥杯_省赛B组(C).冶炼金属

题目如下: 拿到题我们来看一下,题目的意思,就是求出N个记录中的最大最小值,言外之意就是,如果超过了这个最大值不行,如果小于这个最小值也不行,所以我们得出,这道题是一个二分答案的题目&#x…

​​Android 如何查看CPU架构?2025年主流架构有哪些?​

在开发安卓应用或选购手机时,了解设备的CPU架构至关重要。不同的架构影响性能、兼容性和能效比。那么,​​如何查看安卓设备的CPU架构?2025年主流架构有哪些?不同架构之间有什么区别?​​ 本文将为你详细解答。 ​​1.…

飞算 JavaAI 2.0.0:开启老项目迭代维护新时代

在软件开发领域,老项目的迭代与维护一直是开发团队面临的难题。代码逻辑混乱、技术栈陈旧、开发效率低下等问题,让老项目改造犹如一场 “噩梦”。而飞算 JavaAI 2.0.0 版本的正式上线,通过三大核心能力升级,为老项目开发带来了全新…

Linux初步介绍

Linux是一种开源的类Unix操作系统内核,广泛应用于服务器、桌面、嵌入式设备等各种计算平台。它由Linus Torvalds于1991年首次开发,因其稳定性、安全性和灵活性,被全球开发者和企业广泛采用。 特点: 开放性(开源&#…

OneNet + openssl + MQTT

1.OneNet 使用的教程 1.在网络上搜索onenet,注册并且登录账号。 2.产品服务-----物联网服务平台立即体验 3.在底下找到立即体验进去 4.产品开发------创建产品 5.关键是选择MQTT,其他的内容自己填写 6.这里产品以及开发完成,接下来就是添加设…

行为设计模式之Memento(备忘录)

行为设计模式之Memento(备忘录) 前言: 备忘录设计模式,有点像vmware快照可以回滚,idea的提交记录同样可以混滚,流程引擎中流程可以撤销到或者回滚到某个指定的状态。 1)意图 在不破坏封装性的…

动画直播如何颠覆传统?解析足球篮球赛事的数据可视化革命

在5G和AI技术快速发展的今天,体育赛事直播正在经历一场深刻的变革。传统视频直播虽然能提供真实的比赛画面,但在战术可视化、数据深度和交互体验方面存在明显短板。而基于实时数据驱动的动画直播技术,正通过创新的方式弥补这些不足&#xff0…