Mysql 日志
0 引言
MySQL日志主要分为4类,使用这些日志文件,可以查看MySQL内部发生的事情。这4类日志分别是:
● 错误日志:记录MySQL服务的启动、运行或停止MySQL服务时出现的问题。
● 查询日志:记录建立的客户端连接和执行的语句。
● 二进制日志:记录所有更改数据的语句,可以用于数据复制。
● 慢查询日志:记录所有执行时间超过long_query_time的所有查询或不使用索引的查询
1 二进制日志
二进制日志主要记录MySQL数据库的变化。二进制日志以一种有效的格式并且是事务安全的方式包含更新日志中可用的所有信息。二进制日志包含了所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的语句。语句以“事件”的形式保存,描述数据更改。
二进制日志的主要用途:
复制:MySQL的主从复制架构中,主服务器上的二进制日志用于将数据更改事件传输到从服务器。从服务器读取这些事件,并在本地执行,从而保持与主服务器的数据同步。
数据恢复:在某些情况下,如果数据库发生损坏,可以使用二进制日志来恢复数据。通过重放二进制日志中的事件,可以重新构建数据库的状态。
审计:二进制日志也可以用于审计目的,因为它记录了所有修改数据的操作。
1.1 启动和设置二进制日志
默认情况下,二进制日志是开启的,可以通过修改MySQL的配置文件来启动和设置二进制日志。
在MySQL的配置文件my.ini中,可以通过以下设置来启用和配置二进制日志
[mysqld]
log_bin = mysql-bin
server_id = 1
log_bin:启用二进制日志并指定日志文件的基名。MySQL会在基名后面添加扩展名来创建不同的日志文件。
server_id:为每个MySQL服务器实例分配一个唯一的ID。这在复制操作中非常重要,因为它允许MySQL区分来自不同服务器的二进制日志事件。
1.2 查看和使用二进制日志
查看二进制日志内容:
mysqlbinlog mysql-bin.000001
使用SHOW BINARY LOGS查看二进制日志文件个数及文件名
show binary logs;
1.3 删除二进制日志
使用RESET MASTER语句删除所有二进制日志文件
PURGE BINARY LOGS;//执行完该语句后,所有二进制日志将被删除,MySQL会重新创建二进制日志,新的日志文件扩展名将重新从000001开始编号。
RESET MASTER;
使用PURGE MASTER LOGS语句删除指定日志文件
PURGE BINARY LOGS TO 'mysql-bin.000002';
1.4 使用二进制恢复数据库
这将提取在指定时间范围内的事件,并将它们保存到recovery.sql文件中。
mysqlbinlog --start-datetime="2023-04-01 10:00:00"
--stop-datetime="2023-04-01 11:00:00"mysql-bin.000001 > recovery.sql
这将把recovery.sql文件中的事件应用到指定的数据库上。
mysql -u [username] -p[password] [database_name] < recovery.sql
1.5 暂时停止二进制日志功能
暂停记录二进制日志
SET sql_log_bin = 0;
恢复记录二进制日志
SET sql_log_bin = 1;
2 错误日志
MySQL错误日志(Error Log)是MySQL服务器用来记录运行时遇到的错误、警告、诊断信息和其他重要消息的日志文件。错误日志对于故障排查和系统监控非常有用,因为它可以帮助数据库管理员(DBA)了解服务器发生了什么,以及在何时、何地发生的。
2.1 启动和设置错误日志
错误日志的启动和停止以及指定日志文件名都可以通过修改my.ini(或者my.cnf)来配置。。错误日志的配置项是log-error。在[MySQLd]下配置log-error,则启动错误日志。
[mysqld]
log_error = /var/log/mysql/error.log
2.2 查看错误日志
通过错误日志可以监视系统的运行状态,便于及时发现故障、修复故障。MySQL错误日志是以文本文件形式存储的,可以使用文本编辑器直接查看MySQL错误日志。如果不知道日志文件的存储路径,可以使用SHOW VARIABLES语句查询错误日志的存储路径。SHOW VARIABLES语句如下:
SHOW VARIABLES LIKE 'log_error';

2.3 删除错误日志
MySQL的错误日志是以文本文件的形式存储在文件系统中的,可以直接删除。
在运行状态下删除错误日志文件后,MySQL并不会自动创建日志文件。flush logs在重新加载日志的时候,如果文件不存在,则会自动创建。所以在删除错误日志之后,如果需要重建日志文件,需要在服务器端执行以下命令:
flush logs;
3 通用查询日志
通用查询日志记录MySQL的所有用户操作,包括启动和关闭服务、执行查询和更新语句等。
3.1 启动通用查询日志
my.ini中配置
[mysqld]
general_log = ON
general_log_file = /var/log/mysql/mysql-general.log
//开启
set @@global.general_log=1;
//关闭
set @@global.general_log=0;

3.2 查看通用日志
查看日志路径
SHOW VARIABLES LIKE 'general%';
记事本打开即可
3.3 删除通用查询日志
MySQL的查询日志是以文本文件的形式存储在文件系统中的,可以直接删除。
在运行状态下删除查询日志文件后,MySQL并不会自动创建日志文件。flush logs在重新加载日志的时候,如果文件不存在,则会自动创建。所以在删除查询日志之后,如果需要重建日志文件,需要在服务器端执行以下命令:
flush logs;
3.4 注意事项
-
日志文件大小:如果查询日志非常大,直接查看整个文件可能会非常耗时,甚至导致系统资源不足。在这种情况下,使用
tail或grep等工具来查看日志文件的特定部分会更为高效。 -
日志内容:查询日志可能包含敏感信息,如用户查询的详细信息。确保只有授权的用户可以访问这些日志文件,并遵守适当的安全协议。
-
性能影响:启用查询日志可能会对MySQL性能产生负面影响,尤其是在高负载的生产环境中。因此,建议仅在需要时启用查询日志,并在使用完毕后及时关闭。
-
日志轮换:为了管理日志文件的大小和保留期限,你可能需要配置日志轮换。这可以通过操作系统级别的日志管理工具或MySQL的
log_rotate选项来实现。
4 慢查询日志
慢查询日志是记录查询时长超过指定时间的日志。慢查询日志主要用来记录执行时间较长的查询语句。通过慢查询日志,可以找出执行时间较长、执行效率较低的语句,然后进行优化。
4.1 启动和设置慢查询日志
打开MySQL的配置文件my.ini,这里,long_query_time设置了阈值,单位是秒。任何执行时间超过这个值的查询都会被记录到慢查询日志中。
[mysqld]
slow_query_log = ON
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
4.2 查看慢查询日志
先找到日志所在路径,再用txt打开
4.3 删除慢查询日志
和通用查询日志一样,慢查询日志也可以直接删除。并且需要执行flush logs语句重建日志文件。
相关文章:
Mysql 日志
0 引言 MySQL日志主要分为4类,使用这些日志文件,可以查看MySQL内部发生的事情。这4类日志分别是: ● 错误日志:记录MySQL服务的启动、运行或停止MySQL服务时出现的问题。 ● 查询日志:记录建立的客户端连接和执行的…...
【开源】SpringBoot框架开发服装店库存管理系统
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 角色管理模块2.3 服装档案模块2.4 服装入库模块2.5 服装出库模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 角色表3.2.2 服装档案表3.2.3 服装入库表3.2.4 服装出库表 四、系统展示五、核心代码5.…...
云原生之容器编排实践-在K8S集群中使用Registry2搭建私有镜像仓库
背景 基于前面搭建的3节点 Kubernetes 集群,今天我们使用 Registry2 搭建私有镜像仓库,这在镜像安全性以及离线环境下运维等方面具有重要意义。 Note: 由于是测试环境,以下创建了一个 local-storage 的 StorageClass ,并使用本地…...
标准IO 2月4日学习笔记
IO输入输出,操作对象是文件 Linux文件类型: b block 块设备文件 按块扫描设备信息的文件 存储设备 c character 字符设备文件 按字符扫描设备信息的文件 d direct…...
如何在1Panel上偷渡HTTP/3
本文 首发于 Anyeの小站,转载请取得作者同意。 前言 简介 HTTP/3 的基础即谷歌多年探索的基于 UDP 的 QUIC 协议。与 TCP 相比,使用 UDP 可以提供更大的灵活性,并且可以使 QUIC 完全于用户空间中实现——对协议实现的更新不像 TCP 那样需要绑…...
Qt实用技巧:QCustomPlot做北斗GPS显示绝对位置运动轨迹和相对位置运动轨迹图的时,使图按照输入点顺序连曲线
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/136131310 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…...
116 C++ 可变参数函数,initializer_list (初始化列表), 省略号形参
一 可变参数函数 有时候我们传递的参数是不固定的。 这种能接受非固定个数参数的函数就是可变参数函数 怎么实现呢?就要用到 initializer_list 标准库类型 该类型能够使用的前提条件是:所有的实参类型相同。 二,initializer_list(初始化列…...
强国有我社会实践公益活动在合肥市庐阳区开展
2月18日是开工第一天,阳光灿烂、春光明媚。合肥市四十五中2022级星辰(5)班部分同学在监护人的陪伴下来到庐阳区双岗街道万小店社区残疾人工作站,和工作站兄弟姐妹们共同开展“强国复兴有我”社会实践公益活动。合肥市庐阳区为民社…...
Nginx 正向代理、反向代理
文章目录 前言1. 正向代理1.1 概念1.2 逻辑图1.3 使用场景 2. 反向代理2.1 概念2.2 逻辑图2.3 使用场景 前言 正向代理主要是用来解决访问限制问题;反向代理则是提供负载均衡、安全防护等作用 1. 正向代理 1.1 概念 正向代理是一个位于客户端和目标服务器之间的代理…...
软考学习--计算机组成原理与体系结构
计算机组成原理与体系结构 数据的表示 进制转换 R 进制转换为 10 进制–按权展开法 10进制转换为2进制 原码 反码 补码 移码 原码 :数字的二进制表示反码 : 正数的反码等于原码,负数的反码等于原码取反补码: 正数的补码等…...
fish终端下conda activate失败
【问题】fish终端下激活conda环境报错: >> conda activate base CondaError: Run conda init before conda activate ## 然而运行 conda init fish 仍旧无法解决【解决】 参考:https://github.com/conda/conda/issues/11079 方法一…...
FPGA之移位寄存器
SLICEM中的LUT可以配置为32位移位寄存器,而无需使用slice中可用的触发器。以这种方式使用,每个LUT 可以将串 行数据延迟 1 到 32 个时钟周期。移入D (DI1 LUT 引脚)和移出 Q31(MC31 LUT 引脚)线路将LUT级联,以形成更大…...
Android Compose Material3 ModalNavigationDrawer 抽屉的使用(处理了一些坑)
Android Compose Material3 ModalNavigationDrawer 抽屉的使用(处理了一些坑) val drawerState rememberDrawerState(initialValue DrawerValue.Closed) val scope rememberCoroutineScope()ModalNavigationDrawer(drawerState drawerState,drawerC…...
golang select两个channel性能稳定,三个channel时性能会发生抖动,为什么?
golang select两个channel性能稳定,三个channel时性能会发生抖动,为什么? 答题思路 select —> 让 Goroutine同时等待多个 Channel 可读或者可写 —> Goroutine —> 调度器调度 —> 资源竞争 —> 不稳定、抖动 在 Go 中&#…...
VSCODE上使用python_Django
接上篇 https://blog.csdn.net/weixin_44741835/article/details/136135996?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136135996%22%2C%22source%22%3A%22weixin_44741835%22%7D VSCODE官网: Editing Python …...
探索IDE的世界:什么是IDE?以及适合新手的IDE推荐
引言 在编程的世界里,集成开发环境(IDE)是我们日常工作的重要工具。无论是初学者还是经验丰富的开发者,一个好的IDE都能极大地提高我们的编程效率。那么,什么是IDE呢?对于新手来说,又应该选择哪…...
DoRA(权重分解低秩适应):一种新颖的模型微调方法
来自:小互 DoRA(权重分解低秩适应):一种新颖的模型微调方法 DoRA在LoRA的基础上进一步发展,通过将预训练权重分解为“幅度”和“方向”两个部分进行微调。 这种权重分解方法允许DoRA更精细地控制模型的学习过程&…...
centos7.9 搭建k8s
K3s -轻量级Kubernetes K3s 是轻量级的 Kubernetes。K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。 为什么叫 K3s? 我们希望安装的 Kubernetes 只占用一半的内存。Kubernetes 是一个 10 个字母的单词&am…...
使用vite创建项目
NPM npm create vitelatest Yarn yarn create vite PNPM pnpm create vite Bun bunx create-vite 安装sass npm add -D sass 安装less npm add -D less vite官方中文文档:Vite | 下一代的前端工具链 (vitejs.dev)...
EXTI外部中断
? 难点:中断向量表、看门狗、NVIC的优先级位?EXTI框图? ------------------------ 中断系统 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源)--->例如:…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
