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

Mysql-日志介绍 日志配置

环境部署

 docker run -d -p 3306:3306 --privileged=true -v $(pwd)/logs:/var/lib/logs  -v $(pwd)/conf:/etc/mysql/conf.d  -v $(pwd)/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=654321  --name mysql mysql:5.7

运行指令的目录下新建好这些文件:
在这里插入图片描述

日志类型

日志类型写出到日志的信息
ErrorLog(错误日志)mysqld 错误日志(记录了mysqld开始,停止,运行中的错误日志)。
General query log (查询日志)记录了msqld在做什么事情,用户建立连接和用户执行SQL都会被记录。
Binary log(二进制日志)对于数据库的任何修改事件都会记录到这里,二进制日志用于恢复,复制和审计。
Relay log(中继日志)中继日志和二进制日志相似,记录了一些对数据库改变的操作事件,同时维护了一个已经使用过的中继日志索引。
SlowQueryLog慢查询日志,记录慢查询 比long_query_time(可配置)长的都为慢查询。
DDL log (metadata log)记录了比如修改表结构或者重命名这些对元数据进行修改的操作。
查看日志变量

通过下面两条指令可以查看各种日志的启用情况

show variables like "log_%";
show variables like "%_log";

在这里插入图片描述

ErrorLog

默认开启,错误日志记录了运行过程中遇到的所有严重的错误信息,以及 MySQL每次启动和关闭的详细信息。
默认是stderr也就是输出到控制台.
在这里插入图片描述
如果我们需要输出到目录我们需要修改这个配置:

[mysqld]
#设置输出路径
log-error=/var/lib/logs/log-err.log

这里注意可能回报错误,因为没有权限在这个路径写东西,放到这个目录/var/lib/logs下即可:
在这里插入图片描述
重启服务器我们可以看到日志的输出变为了文件路径:
在这里插入图片描述
同时我们可以根据log-warnings去配置输出那些信息,默认为2我们可以看到:
在这里插入图片描述
log_warnings 为0, 表示不记录告警信息。
log_warnings 为1, 表示告警信息写入错误日志。
log_warnings 大于1, 表示各类告警信息,例如:有关网络故障的信息和重新连接信息写入错误日志。
比如我们做下面的配置,可以看到值被修改为了1,这里的配置log-error 和 log_error都会生效,统一一下就可以

[mysqld]
log-error=/var/lib/logs/log-err.log
log_warnings=1

在这里插入图片描述

二进制日志

binlog记录了数据库所有的ddl语句和dml语句,但不包括select和show语句内容因为不是更新操作(这些日志由General query log 来记录),语句以事件的形式保存,描述了数据的变更顺序,binlog还包括每个更新语句的执行时间信息。
如果是DDL语句,则直接记录到binlog日志,而DML语句,必须通过事务提交才能记录到binlog日志中。
binlog主要用于实现mysql主从复制、数据备份、数据恢复。

配置中mysql-bin是binlog日志文件的basename,如果不指定则会取pid-file的名称。binlog日志文件的完整名称:mysql-bin.000001。
pid-file是服务器从中写入其进程ID的文件的路径名。服务器在数据目录中创建文件,除非给出一个绝对路径名来指定其他目录。如果您指定此变量,则必须指定一个值。如果不指定此变量,则MySQL将使用默认值host_name.pid,其中host_name是主机的名称。

[mysqld]
server_id=42 
log-bin=mysql-bin

server-id的作用: 1.mysql的同步数据中是包含server-id的,用于标识该语句最初从哪个server写入,所以server-id一定要有 2.每一个同步中的slave在master上都有对应的一个master线程,该线程就是通过slave的server-id来标识的;每个slave在master端最多有一个master线程,如果两个slave的server-id相同,则后一个连接成功时,前一个会被踢掉,slave主动连接master之后,如果slave上面执行了slave stop;则连接断开,但是master上对应的线程并没有退出;当slave start之后,master不能再创建一个线程而保留原来的线程,那样同步就可能有问题. 3.在mysql做主主同步时,多个主需要构成一个环状,但是同步的时候又要保证一条数据不会陷入死循环,这里就是靠server-id来实现的
binlog日志文件的完整名称:mysql-bin.000001……mysql-bin.999999,也就是在追加binlog的时候会在后面进行编号。在这几种情况下这个编号会继续往下编:

  • msql服务启动或者重启
  • 服务器刷新了binlog日志
  • binlog的size达到了我们预设的max_binlog_size
    为了跟踪使用了哪些二进制日志文件,mysqld还创建了一个包含二进制日志文件名称的二进制日志索引文件。默认情况下,它与二进制日志文件相同,扩展名为‘.index’。您可以使用log_bin_index[=file_name]选项更改二进制日志索引文件的名称。
    开启上面的配置以后我们可以看到二进制日志被开启,并且生产了index文件
    在这里插入图片描述
    我们去docker挂在的目录看一下这些文件
    在这里插入图片描述
General query log 通用查询日志

general query log 默认关闭,由于通用查询日志会记录用户的所有操作,其中还包含增删查改等信息,在并发操作大的环境下会产生大量的信息从而导致不必要的磁盘IO,会影响MySQL的性能的。如果不是为了调试数据库,不建议开启查询日志。

show global variables like '%general_log%';

在这里插入图片描述

[mysqld]
#控制是否开启
general_log={0|1} 
#这个变量定义了慢查询或者查询日志的输出的方式 可以是文件也可以是表 也可以是都输出 TABLE,FILE
log_output={FILE|TABLE|NONE}
#general_log_file如果没有指定,默认名是host_name.log
general_log_file=/var/lib/mysql/general_log.log

在这里插入图片描述

log_output='FILE'表示将日志存入文件,默认值是'FILE' log_output='TABLE'表示将日志存入数据库,这样日志信息就会被写入到mysql.general_log 或者mysql.slow_log表中.

SlowQueryLog 慢查询日志

slow query log 默认关闭,通过以下设置开启。记录执行时间超过long_query_time秒的所有查询,便于收集查询时间比较长的SQL语句。

show global status like '%Slow_queries%'; 
show variables like '%slow_query%'; 
show variables like 'long_query_time%';
[mysqld]
#这个和普通查询日志一样的
log_output={FILE|TABLE|NONE}
# 开启慢查询日志
slow_query_log={0|1} 
# 慢查询的阈值,单位秒
long_query_time=10 
# 日志记录文件
# 如果没有给出file_name值, 默认为主机名,后缀为-slow.log。
# 如果给出了文件名,但不是绝对路径名,文件则写入数据目录。
slow_query_log_file=/var/lib/mysql/slow_query_log.log

在这里插入图片描述
默认情况下,不会记录管理类的日志语句,也不会记录不使用索引进行查询的查询,可以通过下面两个参数开启

#记录管理员
log_slow_admin_statements=ON
#记录没有使用索引的语句
log_queries_not_using_indexes=ON

记录管理类指令 ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX,
OPTIMIZE TABLE, and REPAIR TABLE.这些操作。

DDL log (metadata log)

DDL日志或元数据日志记录由数据定义语句生成的影响表分区的元数据操作,例如 ALTER TABLE t3 DROP PARTITION p2,我们必须确保分区被完全删除,其定义从表t3的分区列表中删除。MySQL使用此日志从分区元数据操作中间发生的崩溃中恢复,就比如我们在修改或者删除表的时候发送了异常,mysqld会借助这个日志将数据库恢复到之前的状态。分区元数据操作的记录被写入MySQL数据目录中的文件ddl_log.log。DDL 日志是一个二进制文件,不被人为的阅读修改,也没有其他配置项可以配置它,且在成功启动mysqld 后会被删除,只有在记录元数据时才会被重新创建。因此,这个文件可能不会出现在一个完全正常运行的MySQL服务器上。

Relay log(中继日志)
show variables like '%relay%';

在这里插入图片描述
和binlog非常的类似也是记录了数据库的变化,也会维护一个索引用来记录那些中继日志被使用过了。我的理解是它其实就是binlog的一种中间状态,用于在从数据库进行同步数据。
原图链接
在这里插入图片描述

出现下面这几种情况,中继日志会创建一个新的文件:

  • 每次负责复制的线程开始的时候,会创建一个新的中继日志,这样不会丢失之前的中继日志。
  • 当日志被刷到磁盘的时候
  • 当中继日志超过文件存储大小上限的时候

相关文章:

Mysql-日志介绍 日志配置

环境部署 docker run -d -p 3306:3306 --privilegedtrue -v $(pwd)/logs:/var/lib/logs -v $(pwd)/conf:/etc/mysql/conf.d -v $(pwd)/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD654321 --name mysql mysql:5.7运行指令的目录下新建好这些文件: 日志类型 日…...

计算机网络的体系结构的各层在整个过程中起到什么作用?

ps:本文章的图片内容来源都是来自于湖科大教书匠的视频,声明:仅供自己复习,里面加上了自己的理解 这里附上视频链接地址:1.6 计算机网络体系结构(4)—专用术语_哔哩哔哩_bilibili 目录 &#x…...

如何在业务代码中优雅的使用策略模式?

策略模式介绍 假设你正在开发一个电商平台,其中涉及到商品的折扣策略。优惠策略有很多种可能,如领取优惠券抵扣、返现促销、拼团优惠等。最初的实现可能会在购物车类中嵌入各种折扣逻辑,导致代码的可维护性和扩展性下降。 下面代码在业务开…...

“docker-credential-desktop.exe“: executable file not found in $PATH 错误解决

"docker-credential-desktop.exe": executable file not found in $PATH 错误解决 1. 错误信息和解决方法 1. 错误信息和解决方法 错误信息, error getting credentials - err: exec: "docker-credential-desktop.exe": executable file not …...

openssl3.2/test/certs - 055 - all DNS-like CNs allowed by CA1, no DNS SANs

文章目录 openssl3.2/test/certs - 055 - all DNS-like CNs allowed by CA1, no DNS SANs概述笔记END openssl3.2/test/certs - 055 - all DNS-like CNs allowed by CA1, no DNS SANs 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 /*! * \file D:\my_dev\my_local_…...

长虹智能电视6000iD、6080iD、3000iD、U2系列等 ZLM61HiPJ机芯升级刷机方法,附刷机数据

机芯:ZLM61HiPJ 适用机型:UD39B6000iD、UD42B6000iD、UD50B6000iD、UD55B6000iD、UD42C6000iD、UD42C6080iD、UD49C6000iD、UD49C6080iD、UD55C6000iD、UD55C6080iD、UD50C6000iD、UD58C3000iD、42U2 LE42C19S-UD、LE50C29SD-UD、 UD49C6000iD(LJM2W)、…...

六、VTK创建平面vtkPlaneSource

vtkPlaneSource创建位于平面中的四边形数组 先看看效果图: vtkPlaneSource 创建一个 m x n 个四边形数组,这些四边形在平面中排列为规则平铺。通过指定一个原点来定义平面,然后指定另外两个点,这两个点与原点一起定义平面的两个轴。这些轴不必是正交的 - 因此您可以创建平行…...

LiveGBS流媒体平台GB/T28181常见问题-如何配置使用自己已有的redis服务替换redis版本升级redis版本

LiveGBS如何配置使用自己已有的redis服务替换redis版本升级redis版本 1、Redis服务2、如何切换REDIS?2.1、停止启动REDIS2.2、配置信令服务2.3、配置流媒体服务2.4、启动 3、搭建GB28181视频直播平台 1、Redis服务 在LivGBS中Redis作为数据交换、数据订阅、数据发布的高速缓存…...

stm32产品架构

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据 总结 前言 起因是我在看野火的ucosiii,然后他是基于i.mx芯片。然后我就很疑惑i.mx是什么芯片,看了下好像是ARM-M7(或者叫ARMCM7)架构的芯片。然后我又疑惑ARM-M7又是什么架…...

数据结构——双链表

双链表中节点类型的描述: 双链表的初始化(带头结点) 、 双链表的插入操作 后插操作 InsertNextDNode(p, s): 在p结点后插入s结点 按位序插入操作: 思路:从头结点开始,找到某个位序的前驱结点&#xff…...

Git 对文件名大小写不敏感的问题解决方案

目录 一、Git 对文件名大小写不敏感1.1 问题描述1.2 原因分析1.3 解决方案方式一:使用git命令进行修改方式二:关闭git 忽略大小写配置 (可以当前项目设置,也可以全局设置 --global) 二、新的问题(重复的目录…...

Java复习系列之阶段三:框架原理

1. Spring 1.1 核心功能 1. IOC容器 IOC,全称为控制反转(Inversion of Control),是一种软件设计原则,用于减少计算机代码之间的耦合度。控制反转的核心思想是将传统程序中对象的创建和绑定由程序代码直接控制转移到…...

【Python】01快速上手爬虫案例一:搞定豆瓣读书

文章目录 前言一、VSCodePython环境搭建二、爬虫案例一1、爬取第一页数据2、爬取所有页数据3、格式化html数据4、导出excel文件 前言 实战是最好的老师,直接案例操作,快速上手。 案例一,爬取数据,最终效果图: 一、VS…...

JavaEE 网络编程

JavaEE 网络编程 文章目录 JavaEE 网络编程引子1. 网络编程-相关概念1.1 基本概念1.2 发送端和接收端1.3 请求和响应1.4 客户端和服务端 2. Socket 套接字2.1 数据包套接字通信模型2.2 流套接字通信模型2.3 Socket编程注意事项 3. UDP数据报套接字编程3.1 DatagramSocket3.2 Da…...

5.rk3588用cv读取图片(C++)

rk3588自带了cv&#xff0c;不需要重新安装&#xff0c;执行以下操作即可&#xff1a; 一、读取图片 1.读取某张图片 #define HAVE_OPENCV_VIDEO #define HAVE_OPENCV_VIDEOIO#include <opencv2/opencv.hpp> #include <iostream> #include <opencv2/opencv.h…...

Github 无法正常访问?一招解决

查询IP网址: https://ip.chinaz.com/ 主页如下&#xff1a; 分别查询以下三个网址的IP&#xff1a; github.com github.global.ssl.fastly.net assets-cdn.github.com 修改 hosts 文件&#xff1a; 将 /etc/hosts 复制到 home 下 sudo cp /etc/hosts ./ gedit hosts 在底下…...

架构师的36项修炼-08系统的安全架构设计

本课时讲解系统的安全架构。 本节课主要讲 Web 的攻击与防护、信息的加解密与反垃圾。其中 Web 攻击方式包括 XSS 跨站点脚本攻击、SQL 注入攻击和 CSRF 跨站点请求伪造攻击&#xff1b;防护手段主要有消毒过滤、SQL 参数绑定、验证码和防火墙&#xff1b;加密手段&#xff0c…...

docker 构建应用

docker 应用程序开发手册 开发 docker 镜像 Dockerfile 非常容易定义镜像内容由一系列指令和参数构成的脚本文件每一条指令构建一层一个 Dockerfile 文件包含了构建镜像的一套完整指令指令不区分大小写&#xff0c;但是一般建议都是大写从头到尾按顺序执行指令必须以 FROM 指…...

Go语言grpc服务开发——Protocol Buffer

文章目录 一、Protocol Buffer简介二、Protocol Buffer编译器安装三、proto3语言指南四、序列化与反序列化五、引入grpc-gateway1、插件安装2、定义proto文件3、生成go文件4、实现Service服务5、gRPC服务启动方法6、gateway服务启动方法7、main函数启动8、验证 相关参考链接&am…...

【开源】基于JAVA语言的实验室耗材管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 耗材档案模块2.2 耗材入库模块2.3 耗材出库模块2.4 耗材申请模块2.5 耗材审核模块 三、系统展示四、核心代码4.1 查询耗材品类4.2 查询资产出库清单4.3 资产出库4.4 查询入库单4.5 资产入库 五、免责说明 一、摘要 1.1…...

金智易表通构建学生缴费数据查询+帆软构建缴费大数据报表并整合到微服务

使用金智易表通挂接外部数据,快速建设查询类服务,本次构建学生欠费数据查询,共有3块设计,规划如下: 1、欠费明细查询:学校领导和财务处等部门可查询全校欠费学生明细数据;各二级学院教职工可查询本二级学院欠费学生明细数据。 2、大数据统计报表:从应收总额、欠费总额…...

MySQL复合索引

复合索引是指在数据库表上同时包含两个或更多列的索引。它们对于优化涉及这些列的查询非常有效&#xff0c;特别是当这些列常常在查询条件&#xff08;如WHERE子句&#xff09;、排序&#xff08;ORDER BY子句&#xff09;和连接&#xff08;JOIN条件&#xff09;中使用时。 复…...

Web3 游戏开发者的数据分析指南

作者&#xff1a;lesleyfootprint.network 在竞争激烈的 Web3 游戏行业中&#xff0c;成功不仅仅取决于游戏的发布&#xff0c;还需要在游戏运营过程中有高度的敏锐性&#xff0c;以应对下一次牛市的来临。 人们对 2024 年的游戏行业充满信心。A16Z GAMES 和 GAMES FUND ONE …...

temu跨境电商怎么样?做temu蓝海项目有哪些优势?

在全球电商市场激烈的竞争中&#xff0c;Temu跨境电商平台以其独特的优势和策略&#xff0c;逐渐崭露头角。对于许多想要拓展海外市场的商家来说&#xff0c;Temu的蓝海项目提供了一个充满机遇的新平台。本文将深入探讨Temu跨境电商的优势以及在蓝海市场中的发展前景。 全球化市…...

C#使用RabbitMQ-1_Docker部署并在c#中实现简单模式消息代理

介绍 RabbitMQ是一个开源的消息队列系统&#xff0c;实现了高级消息队列协议&#xff08;AMQP&#xff09;。 &#x1f340;RabbitMQ起源于金融系统&#xff0c;现在广泛应用于各种分布式系统中。它的主要功能是在应用程序之间提供异步消息传递&#xff0c;实现系统间的解耦和…...

EasyExcel中自定义拦截器的运用

在EasyExcel中自定义拦截器不仅可以帮助我们不止步于数据的填充&#xff0c;而且可以对样式、单元格合并等带来便捷的功能。下面直接开始 我们定义一个MergeWriteHandler的类继承AbstractMergeStrategy实现CellWriteHandler public class MergeLastWriteHandler extends Abst…...

shell编程-7

shell学习第7天 sed的学习1.sed是什么2.sed有两个空间pattern hold3.sed的语法4. sed里单引号和双引号的区别:5.sed的查找方式6.sed的命令sed的标签用法sed的a命令:追加sed的i命令:根据行号插入sed的c命令:整行替换sed的r命令sed的s命令:替换sed的d命令:删除sed中的&符号 7…...

工业智能网关储能物联网应用实现能源的高效利用及远程管理

储能电力物联网是指利用物联网技术和储能技术相结合&#xff0c;实现对电力系统中各种储能设备的智能管理和优化控制。随着可再生能源的不断发展和应用&#xff0c;电力系统面临着越来越大的电力调度和储能需求而储能电力物联网的出现可以有效解决这一问题&#xff0c;提高电力…...

虹科数字化与AR部门升级为安宝特AR子公司

致关心虹科AR的朋友们&#xff1a; 感谢您一直以来对虹科数字化与AR的支持和信任&#xff0c;为了更好地满足市场需求和公司发展的需要&#xff0c;虹科数字化与AR部门现已升级为虹科旗下独立子公司&#xff0c;并正式更名为“安宝特AR”。 ”虹科数字化与AR“自成立以来&…...

服务器是什么?(四种服务器类型)

服务器 服务器定义广义: 专门给其他机器提供服务的计算机。狭义:一台高性能的计算机&#xff0c;通过网络提供外部计算机一些业务服务 个人PC内存大概8G&#xff0c;服务器内存128G起步 服务器是什么 服务器指的是 网络中能对其他机器提供某些服务的计算机系统 &#xff0c;相对…...

湛江企业自助建站/买卖交易网

1.查看当前的AWR保存策略select * from dba_hist_wr_control; DBID,SNAP_INTERVAL,RETENTION,TOPNSQL860524039,00 01:00:00.000000,07 00:00:00.000000,DEFAULT以上结果表示,每小时产生一个SNAPSHOT&#xff0c;保留7天2.调整AWR配置AWR配置都是通过dbms_workload_repository包…...

今日头条网站用什么做的/外贸平台自建站

Part.1 开篇 队名&#xff1a;彳艮彳亍团队 组长博客&#xff1a;戳我进入 作业博客&#xff1a;班级博客本次作业的链接 Part.2 成员汇报 组员1:&#xff08;组长&#xff09;柯奇豪 过去两天完成了哪些任务 部分代码的整合编辑及标注的提交操作展示GitHub当日代码/文档签入记…...

网站建设与管理培训方案/宁波seo搜索平台推广专业

标签 PostgreSQL , CityJSON , CityGML , 3D City , 3D City Database , Geometrical Model , Semantic Model , COLLADA , VRML , X3D , IFC , gbXML , KML , OGC (Open Geospatial Consortium)开放地理空间协会 背景 空间应用在城市规划建设中&#xff0c;在发挥越来越重要的…...

扬州品牌网站设计/网络营销活动案例

每到节假日&#xff0c;景区就会满是游客&#xff0c;在售票、入园等位置出现排长队的情况。随着科技的发展&#xff0c;大数据、人工智能等技术逐渐在旅游行业落地应用&#xff0c;如人脸识别进入景区应用&#xff0c;提升旅客的旅行体验。那么人脸识别系统在景区应用&#xf…...

wordpress 3.9 编辑文章 固定链接 不能编辑/宁波公司做网站

订单表 (order) |-- 自动编号&#xff08;order_id, 自增长主键&#xff09; |-- 订单单号&#xff08;order_no, 唯一值&#xff0c;供客户查询&#xff09; |-- 商店编号&#xff08;shop_id, 商店表自动编号&#xff09; |-- 订单状态 (order_status,未付款,已付款,已发货,已…...

常见的网站空间/域名注册查询阿里云

欢迎进入Linux社区论坛&#xff0c;与200万技术人员互动交流 >>进入 连接就是将两个表按照某个公共字段来拼成一个大表。 左连接就是在做连接是以左边这个表为标准&#xff0c;来遍历右边的表。 1、引子 左连接&#xff0c;自连接 [sql] view plaincopySELECT * FROM tes…...