mysql日志类型与介绍

MySQL日志的分类

在这里插入图片描述在默认的情况下,这些日志在linux环境中是处于非激活状态。当激活日志时,所有的日志都默认配置在数据文件的目录下,我们可以对上述日志进行轮询切割,实现该功能常见的命令是mysqladmin flush-logs、mysqldump的“-F”或“–master-data”参数等

一、错误日志

1、错误日志的介绍
MySQL的错误日志用于记录MySQL服务进程mysqld在启动/关闭或运行过程中遇到的错误信息。
2、错误日志的配置
①在my.cnf配置文件中调整
此配置方法是在mysqld_safe或者mysqld模块的下面配置,指令如下:
log-error = /data/mysql/error.err error.err是自己创建的,需要修改所属用户与所属的组为mysql,或者修改权限,方法如:
chown -R mysql:mysql /data/mysql
chmod -R 755 /data/mysql
②在启动MySQL服务的命令里加入记录错误日志的参数
log-error=/data/mysql/error/error.err
查看到的最后的结果:show variables like ‘log_error%’;

二、慢查询日志

1、慢查询日志介绍
慢查询日志(slow query log)就是记录执行时间超出指定值(long_query_time)或其他指定条件(例如,没有使用到索引,结果集大于n行(指定行))的SQL语句。
2、慢查询日志相关参数
在这里插入图片描述
慢查询日志的参数对于数据库的优化是非常重要的,也是sql优化的前提。
3、慢查询日志的配置参数
#<==慢查询开启的开关 : slow-query-log = ON
#<=记录时间大于1秒的SQL语句 : long_query_time = 2
#<=没有使用到索引的SQL语句 : log_queries_not_using_indexes
#<=记录SQL语句的文件 :slow-query-log-file = /data/mysql/slow/slow.log
#<=记录结果集大于500行的语句 :min_examined_row_limit = 500
将这些重要参数配置到my.cnf文件中,需要重新启动MySQL服务

三、二进制日志

1.二进制日志的介绍
二进制日志一般是记录数据库里的数据被修改的SQL语句,一般为DDL和DML语句,例如含有insert、update、delete、create、drop、alter等关键字的语句。
2.二进制日志的作用
作用一:记录MySQL数据的增量数据,用来做增量数据库恢复,没有二进制日志功能,MySQL的备份将无法完整还原数据。
作用二:实现主从复制功能
3.二进制日志文件的刷新条件
①数据库重启会自动刷新binlog为新文件
②执行“mysqldump -F”或“mysqladmin flush-logs”会将binlog刷新为新文件
③binlog文件达到1GB左右时,会自动刷新binlog为新文件
④人为配置切割及调整

注:binlog最大值参数和默认大小查看方式:show variables like ‘max_binlog_size’

4.二进制日志的删除
binlog日志很重要,不能随意清除,有的人会直接删除binlog物理文件,这样的操作是错误的,应避免,我们要确定什么时候可以删除binlog
方法一:设置参数自动删除binlog
我们假设参数为一个固定值,比如:expire_logs_days = 7 #<==此指令是删除7天前的日志;
该参数默认值是没有配置的,我们可以查看一下
在这里插入图片描述
然后可以设置默认的值为我们想用的时间,如下:

在这里插入图片描述
方法二:按照时间删除binlog日志
这种删除方法适用于临时需求。
[root@lzh data]# ls -l --time-style=long-iso lzh-bin*
5.二进制日志记录的三种模式
(1)语句模式
语句模式是MySQL5.6版本默认的模式,简单地说,就是每一条被修改的数据的SQL语句都会记录到master的binlog中,该模式的优点是不需要记录细到每一行数据的更改变化,可以大量减少binlog日志量,节约磁盘I/O,提高了系统性能。
(2)行级模式
行级模式就是将数据被修改的每一行的情况记录为一条语句,该模式的优点是binlog中可以不记录执行的SQL语句的上下文相关信息,仅仅记录哪一条记录被修改成什么样,所以row level的日志内容会非常清楚地记录下每一行数据修改的细节,非常容易理解。
(3)混合模式
混合模式默认采用语句模式记录日志,在一些特定的情况下会将记录模式切换为行级模式记录,这些特殊情况包含但不限于以下情况:
①:当函数中包含UUID()时
②:当表中有自增列(AUTO_INCREMENT)被更新时
③:当执行触发器(trigger)或者存储过程(stored function)等特殊功能时
④:当FOUND_ROWS()、ROW_COUNT()、USER()、CURRENT_USER()、CURRENT_USER等执行时

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值