简介:

Mysql 中提供了多种类型的日志文件,分别反映 Mysql 的不同信息,了解它们很有必要。

1、Error log ( 错误日志 )

错误日志记录了 Mysql Server 运行过程中所有较为严重的警告和错误信息,以及 Mysql Server 每次启动和关闭的详细信息。

在默认情况下,系统记录错误日志的功能是关闭的( 我所使用的 Mysql 5.6 是开启的 ),错误信息被输出到标准错误输出( Stderr )。

需要开启系统记录错误日志功能时,需要在启动时开启 -log-error 选项。错误日志默认存放在数据目录下,以 hostname.err 命令。

可以使用 --log-error=file_name 的方式或在 my.cnf 中指定其存放的位置和文件名。

为了方便维护,可以通过 flush logs 来生成新的日志文件( 要先将原有的日志文件 mv 一下 )。

2、Binary log( 二进制日志 )

二进制日志,即 binlog 。也是 Mysql Server 中最为重要的日志之一。

当我们通过 --log-bin=file_name 打开了二进制日志功能之后,Mysql 会将所有修改数据库的 query 以二进制的形式记录到日志文件中。

还包括每一条 query 所执行的时间、消耗的资源,以及相关的事务信息;所以 binlog 是事务安全的。

二进制日志跟错误日志一样,binlog 记录功能也需要 --log-bin=file_name 或 my.cnf 中指定来开启;如果没有指定 file_name ,会在数据目录下生成 mysql-bin.******* 的日志文件。

mysql-bin.index 文件的功能是记录所有 Binary log 的绝对路径,保证 Mysql 各种线程能顺利根据它找到所需要的 Binary log 文件。

binlog 相关的其它参数:

--max_binlog_size ## 设置 binlog 的最大存储上限,当日志达到该上限时,Mysql 会重新生成一个新的日志开始继续记录。
偶尔也会超出该上限,是因为在即将到达上限时,产生了一个较大的事务,为了保证事务安全,Mysql 不会将同一个事务存放到两个 binlog 中。

--binlog-do-db=db_name ## 仅仅针对该 db_name 记录 binlog ,而忽略针对其余数据库执行的 query 。

--binlog-ignore-db=db_name ## 与上一参数正好相反,忽略针对该数据库的 query ,记录其余所有数据库的 binlog 。

## 这两参数指的 db_name 不是指 query 语句更新的数据所在的数据库,而是执行 query 时所处的数据库。( 感觉很好理解,说多了容易乱 )

3、Update log( 更新日志 )

更新日志是 Mysql 在较老版本上使用的,其功能跟 binlog 类似,只不过不是以二进制格式记录,而是以简单文本格式记录内容。

从 Mysql 5.0 开始,Mysql 已经不再支持更新日志了。

4、Query log( 查询日志 )

查询日志记录 Mysql 中所有的 query ,通过 --log=file_name 来打开该功能。

由于该日志记录了所有的 query ,包括所有的 select ,体积比较大,开启后会对性能有较大的影响,所以一般不开启。

该日志一般用于跟踪某些特殊的 SQL 性能问题才会短暂开启。默认文件名为 hostname.log ,位置也在数据目录下。

5、Slow query log ( 慢查询日志 )

慢查询日志记录的就是执行时间较长的 query 咯,即 Slow query 。

通过 --log-slow-queries=file_name 开打开此功能并设置文件位置和文件名,默认文件名为 hostname-slow.log ,位置同样在数据目录下。

慢查询日志采用的是简单文本格式,可以通过各种文本编辑器查看其中的内容。

记录了语句执行的时刻,所消耗的时间、执行的用户、连接主机等相关信息。

Mysql 还提供了用于专门分析慢查询日志的工具 Mysqlslowdump ,用来帮助我们了解可能存在的性能问题。

6、Innodb redo log ( Innodb 的在线 redo 日志 )

Innodb 是一个事务安全的存储引擎,其事务安全性主要就是通过在线 redo 日志和记录在表空间中的 undo 信息来保证的。

redo 日志中记录了 Innodb 所做的所有物理变更和事务信息,通过 redo 日志和 undo 信息,Innodb 保证了在任何情况下的事务安全性。

Innodb 的 redo 日志同样默认在数据目录下,可以通过 innodb_log_group_home_dir 来更改其存放位置,通过 innodb_log_files_in_group 设置日志数量。

Mysql 日志文件类型的更多相关文章

  1. 浅谈MySQL日志文件|手撕MySQL|对线面试官

    关注微信公众号[程序员白泽],进入白泽的知识分享星球 前言 上周五面试了字节的第三面,深感数据库知识的重要,我也意识到在平时的学习中,自己对于数据库的学习较为薄弱.甚至在有过一定实习经验之后,依旧因为 ...

  2. lnmp vps服务器删除mysql日志文件三种方法

    我在上一篇文章介绍了著名的LNMP主机一键安装工具,对比了军哥lnmp和AMH主机的差别,由于AMH拥有用户后台界面,易于新手操作,值得推荐. 但是,上周末我网站宕机,收到DNSPOD发来了宕机提醒, ...

  3. (3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb)

    (3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb) 关键词:mysql日志文件,mysqldumpslow分析工具 目录:日志文件的分类 1. ...

  4. Linux下自动清除MySQL日志文件

    MySQL运行过程中会生成大量的日志文件,占用不少空间,修改my.cnf文件配置bin-log过期时间,在Linux下自动清除MySQL日志文件 [mysqld] expire-logs-days= ...

  5. MySQL日志文件之错误日志和慢查询日志详解

    今天天气又开始变得很热了,虽然很热很浮躁,但是不能不学习,我在北京向各位问好.今天给大家分享一点关于数据库日志方面的东西,因为日志不仅讨厌而且还很重要,在开发中时常免不了与它的亲密接触,就在前几天公司 ...

  6. MySQL 日志的类型

    日志文件对于一个服务器来说是非常重要的,它记录着服务器的运行信息,许多操作都会写日到日志文件,通过日志文件可以监视服务器的运行状态及查看服务器的性能,还能对服务器进行排错与故障处理,MySQl中有六种 ...

  7. MySQL日志文件与分析

    1.查询日志.慢查询日志.二进制日志对比 查询日志 general_log 会记录用户的所有操作,其中包含增删查改等 可以指定输出为表 慢查询日志 slow_log 只要超过定义时间的所有操作语句都记 ...

  8. MySQL日志文件和InnoDB引擎文件简介

    MySQL和InnoDB的关系不在这里介绍了.但是大家都知道其中相关的文件很多,类型很多.看文件名就有点分布清楚了.所以在这里简单介绍下他们的文件. 我们直接看文件列表以及在后面直接加注释.做笔记. ...

  9. mysql 日志文件mysql-bin文件清除方法,和mysql-bin相关文件的配置

    默认情况下mysql会一直保留mysql-bin文件,这样到一定时候,磁盘可能会被撑满,这时候是否可以删除这些文件呢,是否可以安全删除,是个问题. 首先要说明一下,这些文件都是mysql的日志文件,如 ...

随机推荐

  1. 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦)

    知道了 csproj 文件中的一些常用 NuGet 属性,创建 NuGet 包时就可以充分发挥新 Sdk 自动生成 NuGet 包的优势,不需要 nuspec 文件啦.(毕竟 nuspec 文件没有 ...

  2. svn 操作命令

    1.第一次提交代码到svn svn import project_directory PATH 2.将文件checkout到本地svn checkout path(path是服务器上的目录) 例如:s ...

  3. 移动端base.css

    html { color: #333; /*规定主色调,依据业务场景(非必须)*/ background: #F6F6F6; /*规定主背景,依据业务场景(非必须)*/ overflow-y: aut ...

  4. 一次解决spark history server日志不见

    通过cloudera的旧版VM(centos6版本)跑spark,之后,想看一下日志研究一下job,stage以及task,压力很大的发现完全没有日志,180088页面打开后: Event log d ...

  5. bzoj 1101 [POI2007]Zap——反演

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1101 #include<cstdio> #include<cstring& ...

  6. C++直接初始化和复制初始化2

    现在正式对C++中对象建立和初始化做一个总结. (1)复制初始化的基本原理 我们知道,对象在内存中的直接表象是在内存中占有一个一定大小的空间.分配空间是建立对象的第一步.但是刚刚分配的空间就像一个没有 ...

  7. 安装MySQL-python 的问题

    安装MySQL-python 的问题 1.CentOS下载mysql-devel安装 yum install mysql-devel 2.Ubuntu下不叫mysql-devel,而是叫libmysq ...

  8. Linux:数据库服务(Mysql安装及链接、远程链接、genelog)

    yum  search  +  服务:查询服务是否存在: yum  remove  +  服务:卸载服务: 使用 service 操作服务时,服务的名称后要加上字符 d,如启动:service  my ...

  9. python接口自动化19-requests-toolbelt处理multipart/form-data

    requests-toolbelt 1.官方文档地址:requests-toolbelt官方文档 2.环境安装 pip install requests-toolbelt multipart/form ...

  10. 项目中Map端数据处理不均匀性分析

    Map任务的不均匀性 最近发现Map端数据越来越不均匀,而处理输入的数据,写到本地磁盘的数据量都差不多,我们随便拿出来两个attempt任务(当前map数量为64个),33和45,33的counter ...