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

0101日志-运维-mysql

1 错误日志

错误日志(Error Log):错误日志记录了MySQL引擎在运行过程中出现的错误和异常情况。这些错误可能包括启动和关闭问题、数据库崩溃、权限问题等。错误日志对于排查和解决MySQL引擎问题非常有帮助。

改日志默认开启,默认存放目录/var/log,默认日志文件名称`mysqld.log。查看日志文件位置:

show variables like '%log_error%';

mysql> show variables like ‘%log_error%’;

Variable_nameValue
binlog_error_actionABORT_SERVER
log_errorstderr
log_error_serviceslog_filter_internal; log_sink_internal
log_error_suppression_list
log_error_verbosity2
  • 该mysql为docker容器中安装运行,位置为标准的错误输出。

下面我们通过修改auto.cnf中UUID让mysql启动报错,来演示错误。

/var/lib/mysql/auto.cnf内容如下所示:

[auto]
server-uuid=1ceab188-df23-11ed-ab6f-0242ac110002

mysql服务器uuid唯一且位数固定,现在我们删去最后一位,再次启动mysql

在这里插入图片描述

报错信息显示auto.cnf中UUID非法无效,现在我们改回之前的server-uuid,问题来了,我们的mysql之前未挂载msyql目录,现在mysql容器启动不起来,不能进入容器,修改不了auto.cnf文件了怎么办呢?

在这里插入图片描述

首先要记住一点,你看不到不表示它没有。

第二步:把mysql文件夹下载到本地,右键save本地

在这里插入图片描述

第三步:修改mysql/auto.cnf为原server-uuid,右键import 在上传至原位置。

2 二进制日志

2.1 简介

二进制日志(BINLOG)记录所有的DDL(数据定义语言)语句和MDL(数据操纵语言)语句,但不包括(SELECT、SHOW)语句。

  • 作用:
    • 灾难时数据恢复;
    • Mysql的主从复制;

二进制日志查看

show variables like '%log_bin%';
Variable_nameValue
log_binON
log_bin_basename/var/lib/mysql/binlog
log_bin_index/var/lib/mysql/binlog.index
log_bin_trust_function_creatorsOFF
log_bin_use_v1_row_eventsOFF
sql_log_binON
  • Log_bin:二进制日志开关,mysql8.0默认开启;
  • log_bin_basename: 二进制日志文件存放路径和基础文件名binlog;
  • log_bin_index:二进制日志文件对应的索引记录

2.2 日志格式

Mysql服务器提供多种格式来记录二进制日志,具体格式及特点如下:

日志格式含义
STATEMENT基于SQL语句的日志记录,记录的是SQL语句,对数据修改的SQL都会记录在日志中。
ROW基于行的日志记录,记录的是每一行的数据变更。(默认)
MIXED混合STATEMNET和ROW记录,默认采用STATEMENT记录,在某些特殊的情况下自动切换ROW记录。

查看日志格式

show variables like '%binlog_format%';
binlog_format | ROW 

2.3 日志查看

由于日志以二进制存储,不能直接读取,需要通过二进制日志查询工具mysqlbinlog查看,具体语法

mysqlbinlog [参数选项] logfilename
参数选项:-d	指定数据库名称,只列出指定数据库相关操作。-o 	忽略掉日志文件中的前n行-v	将行事件(数据变更)重构为sql语句-w	将行事件(数据变更)重构为sql语句,并输出注释信息
  • 基于行的日志记录

对score表执行如下sql

update score set math = math+1;

查看日志文件binlog.000071,

mysqlbinlog -v binlog.000071### UPDATE `gaogzhen`.`score`
### WHERE
###   @1=1
###   @2='Java'
###   @3=66
###   @4=88
###   @5=95
### SET
###   @1=1
###   @2='Java'
###   @3=67
###   @4=88
###   @5=95
### UPDATE `gaogzhen`.`score`
### WHERE
###   @1=2
###   @2='Rose'
###   @3=90
###   @4=66
###   @5=99
### SET
###   @1=2
###   @2='Rose'
###   @3=91
###   @4=66
###   @5=99
### UPDATE `gaogzhen`.`score`
### WHERE
###   @1=3
###   @2='Java'
###   @3=98
###   @4=77
###   @5=80
### SET
###   @1=3
###   @2='Java'
###   @3=99
###   @4=77
###   @5=80
  • where 记录是的更新前的数据;set记录更新后的数据。

  • @1表示第一列

  • 基于STATEMENT的日志格式

在my.cnf中设置

binlog_format=STATEMENT

重启mysql,生成新的日志文件,执行相同的sql操作,再次查看日志内容

update score set math=math+1

2.4 日志删除

对于比较繁忙的业务系统,每天生成的binlog数量巨大,如果长时间不清除,将会占用大量磁盘空间。可以通过以下几种方式清理:

指令含义
reset master删除全部binlog日志,删除之后,日志编号,将从binlog.000001开始
purge master logs to ‘binlog.*****’删除* 编号之前的日志
purge master logs before ‘yyyy-mm-dd hh24:mi:ss’删除指定时间之前的日志

也可以在mysql的配置文件中配置二进制日志的过期时间,设置之后,二进制日志过去会自动删除

show variables like '%binlog_expire_logs_seconds%';binlog_expire_logs_seconds | 2592000 默认30天

3 查询日志

查询日志中记录了客户端的所有操作语句,而二进制日志不包含查询数据的SQL语句。默认情况下,查询日志是未开启的。如果需要开启查询日志,可以开启以下设置。

show variables like '%general%'
Variable_nameValue
general_logOFF
general_log_file/var/lib/mysql/a584ba590640.log

第一步my.cnf配置查询日志

general_log=ON
general_log_file=/var/lib/mysql/mysql_query.log

第二步执行sql操作,查看配置的查询日志

tail -f mysql_query.log

如下图所示:

在这里插入图片描述

在业务繁忙的系统中开启查询日志,查询日志会非常大,如果非不要不建议开启。

4 慢查询日志

慢查询日志记录了所有时间超过参数long_query_time设置值并且扫描记录数不小于min_examined_row_limit的所有的SQL语句的日志,默认未开启。long_query_time默认10s,最小为0,精度可以到微妙。

第一步配置my.cnf中慢查询

slow_query_log=1
slow_query_log_file=/var/lib/mysql/slow-log.log
long_query_time=2
  • slog_query_log:1开启慢查询日志
  • slow_query_log_file:设置慢查询日志文件
  • long_query_time:设置阈值时间

第三步:查看慢查询日志,操作数据库

tail -f slow_log.log

如下图所示:

在这里插入图片描述

默认情况下,不会记录管理语句,也不会记录不使用索引进行查询的语句。可以使用log_slo_admin_statementslog_queries_not_using_indexes

# 记录执行较慢的管理语句
log_slow_admin_statements=1
# 记录较慢的未使用索引的语句
log_queries_not_using_indexes=1

结语

如果小伙伴什么问题或者指教,欢迎交流。

❓QQ:806797785

参考链接:

[1]MySQL数据库视频[CP/OL].2020-04-16.p153-157.

相关文章:

0101日志-运维-mysql

1 错误日志 错误日志(Error Log):错误日志记录了MySQL引擎在运行过程中出现的错误和异常情况。这些错误可能包括启动和关闭问题、数据库崩溃、权限问题等。错误日志对于排查和解决MySQL引擎问题非常有帮助。 改日志默认开启,默认存…...

LabVIEW使用灰度和边缘检测进行视频滤波

LabVIEW使用灰度和边缘检测进行视频滤波 数字图像处理(DIP)是真实和连续世界的离散表示。除此之外,这种数字图像在通信、医学、遥感、地震学、工业自动化、机器人、航空航天和教育等领域变得非常重要。计算机技术越来越需要视频图像的数字图…...

SpringBoot整合WebService

SpringBoot整合WebService WebService是一个比较旧的远程调用通信框架,现在企业项目中用的比较少,因为它逐步被SpringCloud所取代,它的优势就是能够跨语言平台通信,所以还有点价值,下面来看看如何在SpringBoot项目中使…...

【LangChain】向量存储之FAISS

LangChain学习文档 【LangChain】向量存储(Vector stores)【LangChain】向量存储之FAISS 概要 Facebook AI 相似性搜索(Faiss)是一个用于高效相似性搜索和密集向量聚类的库。它包含的算法可以搜索任意大小的向量集,甚至可能无法容纳在 RAM 中…...

小研究 - 主动式微服务细粒度弹性缩放算法研究(三)

微服务架构已成为云数据中心的基本服务架构。但目前关于微服务系统弹性缩放的研究大多是基于服务或实例级别的水平缩放,忽略了能够充分利用单台服务器资源的细粒度垂直缩放,从而导致资源浪费。为此,本文设计了主动式微服务细粒度弹性缩放算法…...

驱动开发相关内容复盘

并发与竞争 并发 ​ 多个“用户”同时访问同一个共享资源。 竞争 并发和竞争的处理方法 处理并发和竞争的机制:原子操作、自旋锁、信号量和互斥体。 1、原子操作 ​ 原子操作就是指不能再进一步分割的操作,一般原子操作用于变量或者位操作。 ​ …...

2.2 身份鉴别与访问控制

数据参考:CISP官方 目录 身份鉴别基础基于实体所知的鉴别基于实体所有的鉴别基于实体特征的鉴别访问控制基础访问控制模型 一、身份鉴别基础 1、身份鉴别的概念 标识 实体身份的一种计算机表达每个实体与计算机内部的一个身份表达绑定信息系统在执行操作时&a…...

C++ 注释

程序的注释是解释性语句,您可以在 C 代码中包含注释,这将提高源代码的可读性。所有的编程语言都允许某种形式的注释。 C 支持单行注释和多行注释。注释中的所有字符会被 C 编译器忽略。 C 注释一般有两种: // - 一般用于单行注释。 /* … …...

Spring事务(声明式事务)(Spring的事务,Spring隔离级别,事务传播机制)

目录 一、什么是事务,为什么要用事务 二、Spring声明式事务 🍅 1、Transactional的使用 🎈 事务回滚 🎈注意:异常被捕获,不会发生事务回滚 🍅 2、Transactional 作⽤范围 🍅 …...

Linux运维面试题(四)之Linux服务管理

Linux运维面试题(四)之Linux服务管理 4.1 SSHSSH的登录验证方式SSH的登陆端口(默认22)和监听设置(/etc/ssh/sshd_config)SSH的登录用户限制(/etc/ssh/sshd_config PermitRootLogin)SSH的登录超时设置(/etc/…...

ChatGPT能否撰写科研论文?

ChatGPT,这款被许多人誉为语言处理领域的“黑马”,究竟能否应用于撰写科研论文?近期,以色列理工学院生物学家兼数据科学家Roy Kishony带领的团队,针对这一问题进行了系列研究,其结果已在《Nature》杂志上发…...

2023 电赛 E 题 K210方案

第一章:K210 介绍 K210芯片是一款基于RISC-V架构的嵌入式人工智能芯片,具备低功耗、高性能的特点。它拥有强大的图像处理和机器学习能力,适用于边缘计算设备和物联网应用。为了方便开发者,K210芯片提供了丰富的外设接口&#xff…...

网络知识介绍

一、TCP 传输控制协议,Transmission Control Protocol。 面向广域网的通信协议,跨域多个网络通信时,为两个通信端点之间提供一条具有如下特点的通信方式: 基于流、面向连接、可靠通信方式、网络状况不佳时尽量降低系统由于重传带…...

MapStruct设置全局的ComponentModel

在mapStruct上边,如果我们要切换成非默认的组件模式,常常要在Mapper注释中添加componentModel "spring",如果类太多的了的话,非常麻烦,有没有更好的方式呢,有的,可以在pom中添加一个…...

LinearAlgebraMIT_6_ColumnSpaceAndNullSpace

这节课的两个重点是column space列空间和null space零空间。 x.1 pre-multiply/left multiply and post-multiply/right multiply 对于pre-multiply/left multiply左乘和post-multiply/right multiply右乘,如果用英文的pre-和post-是比较容易理解的, A…...

出版物经营许可办理 出版物许可地址变更 出版物零售延期

一、出版物零售单位设立所需材料 1、申请书 2、营业执照 3、租赁合同 4、主要负责人身 份证 5、出版物经营许可申请表 二、办理出版物经营许可证所要符合的条件 1、有确定的企业名称和经营范围; 2、有出版物业务的经营场地; 3、有出版物业务的组织机构和发行人员。 三、…...

【LeetCode每日一题】——807.保持城市天际线

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 矩阵 二【题目难度】 中等 三【题目编号】 1572.矩阵对角线元素的和 四【题目描述】 给你一…...

JavaScript--Date(日期)对象

介绍和说明 创建一个Date对象并获取当前日期和时间: 使用new Date()语句可以创建一个表示当前日期和时间的Date对象。它将使用客户端设备上的当前日期和时间。例如:const currentDate new Date(); 获取特定日期的年、月、日、小时、分钟、秒&#xff1…...

一文讲清多线程与多线程同步

1 多线程 1.1 线程的概念 十多年前,主流观点主张在可能的情况下优先选择多进程而非多线程,如今,多线程编程已经成为编程领域的事实标准。多线程技术在很大程度上改善了程序的性能和响应能力,使其能够更加高效地利用系统资源&…...

《Java-SE-第二十六章》之线程池

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页:KC老衲爱尼姑的博客主页 博主的github,平常所写代码皆在于此 共勉:talk is cheap, show me the code 作者是爪哇岛的新手,水平很有限&…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

AspectJ 在 Android 中的完整使用指南

一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...

MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释

以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块&#xff0…...

沙箱虚拟化技术虚拟机容器之间的关系详解

问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西,但是如果把三者放在一起,它们之间到底什么关系?又有什么联系呢?我不是很明白!!! 就比如说: 沙箱&#…...