微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

【MySQL】日志分类

错误日志

MysqL数据库中,错误日志功能认开启的。认情况下,错误日志存储在MysqL数据库的数据目录中。错误日志文件通常的名称为hostname.err。其中,
hostname表示服务器主机名。
错误日志信息可以自己进行配置的,错误日志所记录的信息是可以通过 log_error 和 log_warnings 来定义的,其中log-error是定义是否启用错误日志的功能
错误日志的存储位置,log-warnings是定义是否将警告信息也定义至错误日志中。
认情况下错误日志大概记录以下几个方面的信息:

  1. 服务器启动和关闭过程中的信息(未必是错误信息,如MysqL如何启动InnoDB的表空间文件的、如何初始化自己的存储引擎的等等)、
  2. 服务器运行过程中的错误信息、事件调度器运行一个事件时产生的信息、在从服务器上启动服务器进程时产生的-信息

查看MysqL错误日志文件位置

show variables like ‘log_%’;

在这里插入图片描述


这里有俩个参数
log_error错误日志存放的位置
**log_warnings:**用于标识警告信息是否一并记录到日志中,这里会有三个参数
MysqL5.5中这个认值是1

在这里插入图片描述

MysqL8.0中修改了log_warnings参数为log_error_verbosity

在8.0里,log_warnings这个参数改为了log_error_verbosity
分别对应:
1 错误信息;
2 错误信息和告警信息;
3:错误信息、告警信息和通知信息

在这里插入图片描述

二进制日志

二进制日志,也就是我们常说的binlog。二进制日志记录了MysqL所有修改数据库的操作,然后以二进制的形式记录日志在日志文件中,其中还包括没调语句所 执行的时间和消耗的资源,以及相关的事务信息。

在8.0下二进制日志是认开启的

show variables like ‘log_bin%’;

在这里插入图片描述

二进制文件的作用

1.以二进制形式记录更改数据库sql语句(insert,update,delete,create,drop,alter等)。
2.用于MysqL主从复制。
3.增量数据备份及恢复

添加配置在my.cnf或者my.ini
因为bug必须添加server-id数值随意指定
server-id=1
log_bin=MysqL-bin
启用该选项数据库性能降低1%,但保障数据库完整性,对于重要数据库值得以性能换完整。有些类似于oracle开启归档模式

在这里插入图片描述

命令

-- 查看所有二进制文件信息
show binary logs;
-- 查看最新二进制文件
show master status;
-- 刷新日志
flush logs;
-- 查看二进制日志信息
语法格式:SHOW binlog EVENTS[IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]
-- show binlog events用于在二进制日志中显示事件。如果未指定'log_name',则显示一个二进制日志。
help show binlog events; --获取帮助信息
show binlog events\G;
show binlog events in 'MysqL-bin.000014'\G;

事物日志

redo.log(重做日志)
undo.log(回滚日志)
查看存储引擎: show engines ;
InnoDB引擎在线Redo日志记录了InnoDB所做的所有物理变更和事务信息。通过Redo日志和Undo信息,InnoDB大大地加强了事务的安全性。InnDB在线Redo
日志认存放在data命令下,可通过设置innodb_log_griyo_home_dir选项来更改日志文件存放位置,通过innodb_log_files_in_group选项来说何止日志的数量
使用事务日志,存储引擎在修改表的数据时只需要修改其内存拷贝,再把修改行为记录到持久在硬盘上的事务日志中,而不用每次都将修改的数据本身持久到磁
盘。事务日志采用追加的方式,因此写日志的操作是磁盘上一小块区域内的顺序I/O,而不像随机I/O需要在磁盘的多个地方移动磁头,所以采用事务日志的方式
相对来说要快得多。事务日志持久以后,内存中被修改的数据在后台可以慢慢的刷回到磁盘。目前大多数的存储引擎都是这样实现的。

查询日志

顾名思义,慢查询日志中记录的是执行时间较长的query,也就是我们常说的slowquery。
专业一点:慢查询日志是值所有sql执行的实际超过long_query_time变量的语句和达到min_examined_row_limit条举例的语句。用户可以针对这部分语句性能
优。慢查询日志通过设置log-slow_queries[=file_name]选项开启后,将记录日志所在的路劲和名称MysqL系统认的慢查询日志的文件名是show.log,认目
录是data目录。

开启慢日志
set global slow_query_log = 'on';

设置慢日志时间,设置后需要重启MysqL才可以生效
set global long_query_time = 2;

在这里插入图片描述

查看慢日志文件

在这里插入图片描述

Query_time: 0.000304表示用了0.000304秒
Lock_time: 0.000128表示锁了0.000128秒
Rows_sent: 4表示返回4行
Rows_examined: 4表示一共查了4行
SET timestamp=UNIXTIME; 这是查询实际发生的时间和将其变成一个有用的时间,将 Unix 时间转成一个可读的时间,可以使用 date –d@日志中的时间戳:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐