MySQL —— 日志

概念

在任何一种数据库中,都会有各种各样的日志,记录着数据库工作的方方面面,以帮助数据库管理员追踪数据库曾经发生过的各种事件,MySQL也不例外。

日志分类

  • 错误日志
  • 二进制日志
  • 查询日志
  • 慢查询日志

错误日志

错误日志是MySQL中最重要的日志之一,它记录了当MySQL启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关数据,当数据库出现任何故障导致无法正常使用时,可以首先查看此日志。
该日志是默认开启的,默认存档目录为MySQL的数据目录,默认日志文件名为hostname.err(hostname是主机名)
查看日志位置指令:

show variables like 'log_error%';

二进制日志

二进制日志记录了所有DDL语句和DML语句,但是不包括数据查询语句,此日志对于数据库发生错误后的数据恢复起到了极为重要的作用,MySQL的主从复制就是通过二进制日志实现的。
二进制日志在MySQL8.0是默认开启的,低版本的需要通过配置文件开启,并配置MySQL日志的格式,window需要修改my.ini,Linux需要修改my.cnf

#配置开启binlog日志,日志的文件前缀为mysqlbin--->生成的文件名如:mysqlbin.00001,mysqlbin.00002
log_bin=mysqlbin
#配置二进制日志的格式
binlog_format = statement

日志格式分类:

  • statement:该日志格式在日志文件中记录的都是sql语句,每一条对数据进行修改的sql都会记录在日志文件中,通过MySQL提供的mysqlbinlog工具,可以清晰的查看到每条语句的文本,主从复制的时候,从库会将日志解析为原文本,并在从库重新执行一次
  • row:该日志格式在日志文件中记录的是每一行的数据变更,而不是记录sql语句,比如,执行sql语句update table_name set status = 1; , 如果是statement格式,在日志中会记录一行sql文件,而如果是row,由于是对全表进行更新,也就是每一行记录都会发生变更,row格式的日志中会记录每一行的数据变更
  • mixed:混合了statement和row两种格式
--查看MySQL是否开启了binlog日志
show variables like 'log_bin';
--查看binlog日志的日志格式
show variables like 'binlog_format';
--查看所有日志
show binlog events;
--查看最新的日志
show master status;
--查询指定的binlog日志
show binlog events in 'binlog.00010';

查询日志

查询日志中记录了客户端的所有操作语句,而二进制日志不包含查询数据的sql语句
默认情况下,查询日志是未开启的,如果需要开启查询日志,可以设置以下配置:

#该选项用于开启查询日志,可选值:0或者1;0代表关闭,1代表开启
general_log = 1
#设置日志的文件名,如果没有指定,默认的文件名为host_name.log
general_log_file= file_name
#查看MySQL是否开启了查询日志
show variable like 'general_log%';
#开启查询日志
set global general_log = 1;

慢查询日志

慢查询日志记录了所有执行时间超过参数long_query_time设置值并且扫描记录数不小于min_examined_row_limit的所有的SQL语句的日志,long_query_time默认为10秒,最小为0,精度可以到微妙

#该参数用于控制慢查询日志是否开启,1代表开启,0代表关闭
slow_query_log = 1;
#该参数用于指定慢查询日志的文件名
slow_query_log_file = slow_query_log
#该选项用来配置查询的时间限制,超过这个时间将认为是慢查询,将需要进行日志记录,默认10s
long_query_time = 10
#查看MySQL是否开启了慢查询日志
show variable like 'slow_query_log%';
#查看慢查询日志的超时时间
show variable like 'slow_query_time%';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值