MySQL--日志管理

news2024/10/1 7:32:03

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

一、日志简介

MySQL日志主要分为4类,使用这些日志文件,可以查看MySQL内部发生的事情。这4类日志分别是:

  • 错误日志:记录 MySOL服务的启动、运行或停止MySQL服务时出现的问题
  • 查询日志:记录建立的客户端连接和执行的语句。
  • 二进制日志:记录所有更改数据的语句,可以用于数据复制
  • 慢查询日志:记录所有执行时间超过long_query_time的所有查询或不使用索引的查询

默认情况下,所有日志创建于 MySOL数据目录中。通过刷新日志,可以强制 MySQL 关闭和重新打开日志文件(或者在某些情况下切换到一个新的日志)。当执行一个FLUSH LOGS语句或执行 MySOLadmin fush-logsMySOLadmin 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语句重建日志文件。

致谢

在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。 

学习永无止境,让我们共同进步!!

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

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

相关文章

程序编译及链接

你好!感谢支持孔乙己的新作,本文就程序的编译及链接与大家分析我的思路。 希望能大佬们多多纠正及支持 !!! 个人主页:爱摸鱼的孔乙己-CSDN博客 ​ ​ 1.翻译译环境与运行环境 当我们进行程序设计时&…

Android Graphics 显示系统 - 计算FPS的原理与探秘Present Fence

“ 最近忙着新房子装修的事情,这篇计划内的文章拖了好久一直没有足够的时间来写作,终于挤出些儿时间来继续研究学习了。” 整了四个晚上终于拼凑出一篇文章,虽说是讲FPS计算原理,但该文涉及的知识点还是蛮多的,特别是对…

webpack的loader机制

webpack的loader机制 loader本质上就是导出函数的JavaScript模块。导出的函数,可以用来实现内容的转换。 /* * param{string|Buffer} content 源文件的内容 * param{object} [map] SourceMap数据 * param{any} [meta] meta数据,可以是任何数据 * */ fu…

黑马头条vue2.0项目实战(五)——首页—频道编辑

目录 1. 使用页面弹出层 1.1 页面弹出层简单使用 1.2 创建频道编辑组件 1.3 页面布局 2. 展示我的频道 3. 展示推荐频道列表 3.1 获取所有频道 3.2 处理展示推荐频道 4. 添加频道 5. 编辑频道 5.1 处理编辑状态 5.2 切换频道 5.3 让激活频道高亮 5.4 删除频道 6.…

K8S Docker搭建RocketMQ Dledger高可用集群

本篇文章回顾在华润基于K8S和Docker云设施搭建初步高可用具备failover的RocketMQ集群。RocketMQ版本是5.0.0。 目前现状 采用Dledger模式部署集群,3台namesrv,3台broker,namesrv每台1g的Docker部署,broker每台2g的Docker部署。测…

Hyper-V创建虚拟机安装OpenEulerOS

文章目录 下载OpenEulerHyper-V创建虚拟机 下载OpenEuler 进入官网下载,我选择的是 openEuler 24.03 LTS ,选择第一个版本即可: Hyper-V创建虚拟机 点击新建->虚拟机: 点击下一步: 输入虚拟机名称&#xff0c…

AMD Product Specifications - AMD 产品规格汇总

AMD Product Specifications - AMD 产品规格汇总 1. Desktop, Laptop and Workstation Processor Specifications (台式处理器、笔记本电脑处理器和工作站处理器规格)2. Server Processor Specifications (服务器处理器规格)3. Embedded Processor Specifications (嵌入式处理器…

element-ui表格1.0.0.1,表格的属性

前言:基于vue2element-ui的理论转实践的使用 第一组:数据显示 利用v-bind:data在table绑定数据源,将数据利用prop的属性传入到table-column,渲染到表格中 正片开始 首先,常用的属性(作者常用&#xff09…

书生大模型_InternLM + LlamaIndex RAG 实践

1.任务要求 基于 LlamaIndex 构建自己的 RAG 知识库,寻找一个问题 A 在使用 LlamaIndex 之前InternLM2-Chat-1.8B模型不会回答,借助 LlamaIndex 后 InternLM2-Chat-1.8B 模型具备回答 A 的能力,截图保存。 来源: https://github.…

鸿蒙媒体开发【媒体会话-提供方】音频和视频

媒体会话-提供方 介绍 本示例主要展示了媒体会话(媒体提供方)的相关功能,使用ohos.multimedia.avsession等接口实现媒体提供方与媒体播控中心自定义信息的交互功能。 注意: 此示例仅展示媒体提供方的相关功能,如果需…

2024 年华数杯全国大学生数学建模竞赛C 题 老外游中国 完整成品文章分享

最近,“city 不 city”这一网络流行语在外国网红的推动下备受关注。随着我国过境免签政策的落实,越来越多外国游客来到中国,通过网络平台展示他们在华旅行的见闻,这不仅推动了中国旅游业的发展,更是在国际舞台上展现了…

大模型学习笔记 - LLM 解码与部署

LLM 解码与部署 LLM 解码与部署 1. 解码策略 1.1 背景 1.1 贪心搜所1.2 概率采样 1.2 贪心搜所改进 1.2.1 束搜索 (保留前n个高概率的句子,最终选取整体概率高的生成)1.2.2 长度惩罚 (估计生成更长句子)1.2.3 重复惩罚…

stm32入门-----硬件I2C读写MPU6050

目录 前言 一、stm32中I2C库函数介绍(stm32f10x_i2c.h) 1.初始化 2.使能操作 3.生成起始位和结束位标志 4.发送I2C从机地址 5.发送数据和接收数据 6.发送应答位 7.状态检测 二、硬件I2C读取MPU6050 1.电路连线图 2.主要工程文件 3.MPU6050.…

WordPress网站被入侵,劫持收录事件分析

7.15,网站被入侵,但是直到7月17日,我才发现被入侵。 16日,17日正常更新文章,17日查询网站收录数据时,在站长资源平台【流量与关键词】查询上,我发现了比较奇怪的关键词。 乱码关键词排名 起初…

案例分享:如何使用原生的NodeJs下载视频网站上的视频资源到本地生成MP4文件

如何使用原生的NodeJs下载视频网站上的视频资源到本地生成MP4文件 1、当下视频网站的视频资源无法通过常规手段下载的原因2、什么是M3U8是什么视频文件?3、如何下载M3U8文件中的TS文件并在本地合并为MP4文件?3.1 FFmpeg 是什么工具?3.2 安装 FFmpeg 工具3.3 使用 FFmpeg 工具…

每天五分钟深度学习:向量化方式完成逻辑回归模型的参数更新

本文重点 上一节课程中,我们学习了m个样本的前向传播的向量化,我们可以同时完成m个样本的前向传播,也就是m个样本z的计算,然后a的计算。本节课程我们将学习dw和db参数更新的向量化,最终得到整个逻辑回归算法的参数更新的向量化表示。 非向量化的逻辑回归梯度下降算法 如…

学习日志8.4--DHCP攻击防范

目录 DHCP饿死攻击 DHCP Sever仿冒攻击 DHCP攻击防范 DHCP动态主机配置协议,是给主机提供自动获取IP地址等配置信息的服务。在主机对DHCP服务器发送DHCP Discover请求之后,服务器回复offer,主机再回复request,最后服务器回复AC…

uni-app开发打包成H5部署到服务器

1. 点击发行 2. 点击进入manifest.json的h5配置里,根据自己的情况配置一些信息。一定要注意配置 “运行的基础路径”,如果出现空白页面或者静态文件404的情况,可能是因为这个路径没有配置好。 3. 填写域名 4. 点击发行后,控制台后…

如何让左右两个div各占50%,并且高度相同?

如何设置两个div各占一半,并且高度随着内容增加,而且两边div的高度一致呢?默认会发现高度不一致,改用flex就可以了,另外发现传统的table也可以轻易实现。不知道不用flex的话是否可以实现。 方法1(div实现&a…

二分+dp,CF 1993D - Med-imize

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 D - Med-imize 二、解题报告 1、思路分析 对于n < k的情况直接排序就行 对于n > k的情况 最终的序列长度一定是 (n - 1) % k 1 这个序列是原数组的一个子序列 对于该序列的第一个元素&#xff0…