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

MySQL查看日志

目录

1. 日志

1.1 错误日志

1.2 二进制日志

1.2.1 介绍

1.2.2 格式

1.2.3 查看

1.2.4 删除

1.3 查询日志

1.4 慢查询日志


1. 日志

1.1 错误日志

错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过
程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日
志。
该日志是默认开启的,默认存放目录 /var/log/ ,默认的日志文件名为 mysqld.log 。查看日志
位置:
show variables like '%log_error%';

1.2 二进制日志

1.2.1 介绍

二进制日志( BINLOG )记录了所有的 DDL (数据定义语言)语句和 DML (数据操纵语言)语句,但
不包括数据查询( SELECT SHOW )语句。
作用:① . 灾难时的数据恢复;② . MySQL 的主从复制。在 MySQL8 版本中,默认二进制日志是开启着
的,涉及到的参数如下:

show variables like '%log_bin%'; 1

参数说明:
  • log_bin_basename:当前数据库服务器的binlog日志的基础名称(前缀),具体的binlog
  • 件名需要再该basename的基础上加上编号(编号从000001开始)
  • log_bin_indexbinlog的索引文件,里面记录了当前服务器关联的binlog文件有哪些。

1.2.2 格式

MySQL 服务器中提供了多种格式来记录二进制日志,具体格式及特点如下:
show variables like '%binlog_format%'; 1

如果我们需要配置二进制日志的格式,只需要在 /etc/my.cnf 中配置 binlog_format 参数即

1.2.3 查看

由于日志是以二进制方式存储的,不能直接读取,需要通过二进制日志查询工具 mysqlbinlog 来查
看,具体语法:
mysqlbinlog [ 参数选项 ] logfilename
参数选项:
-d 指定数据库名称,只列出指定的数据库相关操作。
-o 忽略掉日志中的前n行命令。
-v 将行事件(数据变更)重构为SQL语句
-vv 将行事件(数据变更)重构为SQL语句,并输出注释信息

1.2.4 删除

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

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

show variables like '%binlog_expire_logs_seconds%';

1.3 查询日志

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

如果需要开启查询日志,可以修改MySQL的配置文件 /etc/my.cnf 文件,添加如下内容: 

#该选项用来开启查询日志 , 可选值 : 0 或者 1 ; 0 代表关闭, 1 代表开启
general_log=1
#设置日志的文件名 , 如果没有指定, 默认的文件名为 host_name.log
general_log_file=mysql_query.log
开启了查询日志之后,在 MySQL 的数据存放目录,也就是 /var/lib/mysql/ 目录下就会出现
mysql_query.log 文件。之后所有的客户端的增删改查操作都会记录在该日志文件之中,长时间运
行后,该日志文件将会非常大

1.4 慢查询日志

慢查询日志记录了所有执行时间超过参数 long_query_time 设置值并且扫描记录数不小于
min_examined_row_limit 的所有的 SQL 语句的日志,默认未开启。 long_query_time 默认为
10 秒,最小为 0 , 精度可以到微秒。
如果需要开启慢查询日志,需要在 MySQL 的配置文件 /etc/my.cnf 中配置如下参数:
#慢查询日志
slow_query_log=1
#执行时间参数
long_query_time=2
默认情况下,不会记录管理语句,也不会记录不使用索引进行查找的查询。可以使用
log_slow_admin_statements 和 更改此行为 log_queries_not_using_indexes ,如下所
#记录执行较慢的管理语句
log_slow_admin_statements =1
#记录执行较慢的未使用索引的语句
log_queries_not_using_indexes = 1
上述所有的参数配置完成之后,都需要重新启动 MySQL 服务器才可以生效。

http://www.kler.cn/a/420152.html

相关文章:

  • python脚本:Word文档批量转PDF格式
  • Android Studio 右侧工具栏 Gradle 不显示 Task 列表
  • ESP32-S3模组上跑通ES8388(13)
  • 12.2深度学习_项目实战
  • 为什么编程语言会设计不可变的对象?字符串不可变?NSString *s = @“hello“变量s是不可变的吗?Rust内部可变性的意义?
  • 【AI系统】代数简化
  • 16asm - 汇编介绍 和 debug使用
  • transformers gpt2 语言模型
  • Java与AWS S3的文件操作
  • spring boot+jpa接入达梦数据库
  • 《只狼》运行时提示“mfc140u.dll文件缺失”是什么原因?“找不到mfc140u.dll文件”要怎么解决?教你几招轻松搞定
  • Spring源码导入idea时gradle构建慢问题
  • 初识QT第一天
  • 使用C#开发VTK笔记(一)-VTK开发环境搭建
  • Postgres数据库自动化分区
  • IDL学习笔记(一)数据类型、基础运算、控制语句
  • husky,commit规范,生成CHANGELOG.md,npm发版
  • vscode 怎么下载 vsix 文件?
  • SQL面试题——抖音SQL面试题 共同问题—共同使用ip用户检测问题
  • 龙迅#LT6912适用于HDMI2.0转HDMI+LVDS/MIPI,分辨率高达4K60HZ,支持音频和HDCP2.2
  • ubuntu20以上配置登录失败处理
  • 在OpenHarmony系统下开发支持Android应用的双框架系统
  • 基于K-NN + GCN的轴承故障诊断模型
  • TIE相位恢复算法--两次对焦距离和位置、折射率不均匀、相位大小的分析
  • 【379】基于springboot的防疫物资管理信息系统
  • 【SQL】实战--查找重复的电子邮箱