首页 > 数据库 >MySQL日志

MySQL日志

时间:2024-08-23 15:04:09浏览次数:8  
标签:语句 binlog log 记录 二进制 MySQL 日志

MySQL 日志

MySQL 日志类型

MySQL 日志有以下几种类型:

  • 错误日志:用于记录 MySQL 服务器启动、运行和停止时发生的错误的相关信息。
  • 二进制日志:记录了所有 DDL 和 DML 语句。
  • 查询日志:查询日志记录了客户端所有操作语句。
  • 慢查询日志:慢查询日志记录了所有执行时间超过参数 long_query_time 设定值并且扫描记录数不小于 min_examined_row_limit 的所有 SQL 语句的日志。

错误日志

错误日志记录了 mysqld 启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。

作用:当数据库出现任何故障导致无法使用时,建议查看此日志。

错误日志默认开启,存放目录 /var/log/,文件名为 mysqld.log

查看错误日志相关参数show variables like "%log_error%;"

二进制日志

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

作用

  • 灾难时的数据恢复;
  • MYSQL的主从复制。

在 MYSQL8 版本中,二进制日志默认开启。

查看二进制日志相关参数show variables like "%log_bin%;"

  • log_bin_basename:当前数据库服务器 binlog 日志文件名前缀,具体的 binlog 文件名是在前缀基础上添加编号后缀(从000001开始),见图1、图2。
  • log_bin_index:binlog 的索引文件,用于记录了当前服务器关联的 binlog 有哪些,见图3。

图1-二进制日志相关参数

图2-二进制日志文件

图3-二进制日志索引文件

为什么我的二进制日志是从000009开始的?

二进制日志的格式

MYSQL 提供多种格式用于记录二进制日志:

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

查看当前二进制日志格式show variables like '%binlog_format';

查看二进制日志

NAME
       mysqlbinlog - utility for processing binary log files

SYNOPSIS
       mysqlbinlog [options] log_file ...

删除二进制日志

有以下方法清理二进制日志:

  • reset master:删除全部 binlog 日志,删除之后,日志编号,将从 binlog.000001重新开始
  • purge master logs to 'binlog.*':删除 * 编号之前的所有日志
  • purge master logs before 'yyyy-mm-dd hh24:mi:ss':删除日志为 "yyyy-mm-dd hh24:mi:ss" 之前产生的所有日志

标签:语句,binlog,log,记录,二进制,MySQL,日志
From: https://www.cnblogs.com/yangxuanzhi/p/18375961

相关文章

  • MySQL 持久化系统变量
    setpersist会将变量持久化到文件mysqld-auto.cnf文件中,该文件位于数据目录下。resetpersist会移除mysqld-auto.cnf文件中持久化的变量。 MySQL可以在运行时持久化全局系统变量。虽然许多系统变量可以在启动时通过my.cnf配置文件设置,或在运行时使用set语句设置,但这......
  • 重置MySQL表中自增字段的起始id
    导言在进行项目开发的时候,往往会自己编辑一些测试用例,但是这些用例会影响我们自增字段的起始id,虽然对我们项目没有多大影响,但是对于强迫症来说,不是从1顺着一个一个开始,感觉很不适应,所以特意搜了一下方法,然后记录一下处理方法mysql给我们提供了强大的函数功能,其中ALTERTABLE......
  • 容器设置日志驱动程序 - docker --log-driver
    环境:在创建docker时候遇到该异常信息:docker:Errorresponsefromdaemon:logger:nologdrivernamed'local'isregistered.在linux系统下使用docker进行容器创建时候,一般情况下会对docekr的日志驱动做设置,以避免文件过大导致磁盘占满的情况,如下记录自己的一些经理,希望对朋......
  • 自定义安装Mysql版本
    自定义安装Mysql版本mysql下载地址:https://downloads.mysql.com/archives/community/1.下载wgethttps://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar--2024-08-2010:15:39--https://downloads.mysql.com/archives/get/p/23/......
  • OceanBase-clog、日志-队列积压-dump tenant info
    dumptenantinfo日志中搜索dumptenantinfo关键字,可看到租户的规格,线程,队列,请求统计等信息。这条日志每个租户每10s打印一次。查询办法:  grep'dumptenantinfo.*observer.log日志:tenant={id:1002'log/observer.log.*[2021-05-1016:56:22.564978]INFO [SERVER.OMT]......
  • 【Java日志系列】Log4j2日志框架
    目录前言一、Log4j2简介与特征二、快速入门 三、SLF4j+Log4j2组合四、配置文件五、异步日志1.AsyncAppender方式2.AsyncLogger方式总结前言 在当今的软件开发领域中,日志记录是调试、监控和审计应用程序不可或缺的一部分。高效的日志记录不仅能帮助开发者理......
  • OceanBase -clog、日志-查看unit迁移过程中副本数变化
    查看unit迁移过程中副本数变化----------------------------------------------------------------------------------------------------------------------------第一:在副本迁移时候,可以查询以下SQL进行观察(适用2.X/3.X)查看副本数selectcount(*)from__all_virtual_m......
  • Python3测试mysql插入数据代码(chatgpt生成)
      实现的功能:先连接mysql数据库,然后读取某个目录所有以txt文件命名后缀的json内容文件,解析出对应的key和value,然后插入数据到mysql数据库,最后关闭数据库连接 importosimportjsonimportpymysqlimportre"""尝试插入json文件到MySQL数据库。dbInfo:MySQL数据库......
  • 利用ibd2sql直接读取mysql8数据文件数据
    MySQL8.0之后,表结构和表数据统一放到了ibd文件中,该文件包含了表的结构和索引以及数据信息。MySQL支持利用ibd2sdi来进行解析ibd文件下载地址:https://github.com/ddcw/ibd2sql/archive/refs/tags/v1.5.tar.gz[[email protected]]#ibd2sdi/data/mysqldata/data/test01/t......
  • Kettle: create_sampledata_mysql
    USEsampledate;CREATETABLEsampledata.QUADRANT_ACTUALS(REGIONVARCHAR(50)NOTNULL,DEPARTMENTVARCHAR(50)NOTNULL,POSITIONTITLEVARCHAR(50)NOTNULL,ACTUALDECIMAL(18,4),BUDGETDECIMAL(18,4),VARIANCEDECIMAL(18,4));CREATETABLEsampledata.DEPARTME......