概述

日志文件是MySQL数据库的重要组成部分。MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等。这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等。本文主要描述MySQL的各种日志文件。

MySQL日志文件分类

1.错误日志(Error Log)

2.二进制日志(Binary Log & Binary Log Index)

3.通用查询日志(query log)

4.慢查询日志(slow query log)

5.Innodb的在线 redo 日志(innodb redo log)

6.更新日志(update log)

错误日志

错误日志记录了MyQL Server运行过程中所有较为严重的警告和错误信息,以及MySQL

Server 每次启动和关闭的详细信息。在默认情况下,系统记录错误日志的功能是关闭的, 错误信息被输出到标准错误输出(stderr) ,如果要开启系统记录错误日志的功能,需要在启动时开启-log-error 选项。错误日志的默认存放位置在数据目录下,以hostname.err 命 名。但是可以使用命令:—log-error[=file_name],修改其存放目录和文件名。

为了方便维护需要, 有时候会希望将错误日志中的内容做备份并重新开始记录, 这候时 就可以利用 MySQL 的 FLUSH LOGS 命令来告诉 MySQL 备份旧日志文件并生成新的日志文件。 备份文件名以“.old”结尾。

二进制日志

二进制日志,也就是我们常说的 binlog,也是 MySQL Server 中最为重要的日志之一。

当我们通过“—log-bin[=file_name]”打开了记录的功能之后,MySQL 会将所有修改数据 库数据的 query 以二进制形式记录到日志文件中。 当然, 日志中并不仅限于query 语句这么 简单, 还包括每一条query 所执行的时间, 所消耗的资源, 以及相关的事务信息,bi所nl以og 是事务安全的。

和错误日志一样,binlog 记录功能同样需要“—log-bin[=file_name]”参数的显式指 定才能开启, 如果未指定file_name, 则会在数据目录下记录为mysql-bin.** (*代表0~ 9 之间的某一个数字,来表示该日志的序号)。

binlog 还有其他一些附加选项参数:

“—max_binlog_size”设置 binlog 的最大存储上限,当日志达到该上限时,MySQL 会 重新创建一个日志开始继续记录。不过偶尔也有超出该设置的binlog 产生,一般都是因为 在即将达到上限时,产生了一个较大的事务,为了保证事务安全,MySQL 不会将同一个事务 分开记录到两个 binlog 中。

“—binlog-do-db=db_name”参数明确告诉 MySQL,需要对某个(db_name)数据库记 录 binlog,如果有了“—binlog-do-db=db_name”参数的显式指定,MySQL 会忽略针对其他 数据库执行的 query,而仅仅记录针对指定数据库执行的query。

“—binlog-ignore-db=db_name”与“—binlog-do-db=db_name”完全相反, 它显式指 定忽略某个(db_name)数据库的binlog 记录,当指定了这个参数之后,MySQL 会记录指定 数据库以外所有的数据库的 binlog。

“—binlog-ignore-db=db_name”与“—binlog-do-db=db_name”两个参数有一个共同 的概念需要大家理解清楚,参数中的db_name 不是指 query 语句更新的数据所在的数据库, 而是执行 query 的时候当前所处的数据库。 不论更新哪个数据库的数据,MySQL 仅仅比较当 前连接所处的数据库(通过use db_name切换后所在的数据库)与参数设置的数据库名,而 不会分析 query 语句所更新数据所在的数据库。

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

通用查询日志

查询日志记录 MySQL 中所有的 query,通过“—log[=fina_name]”来打开该功能。由

于记录了所有的 query,包括所有的 select,体积比较大,开启后对性能也有较大的影响, 所以请大家慎用该功能。 一般只用于跟踪某些特殊的sql 性能问题才会短暂打开该功能。默认的查询日志文件名为 hostname.log。

慢查询日志

顾名思义,慢查询日志中记录的是执行时间较长的 query,也就是我们常说的 slow

query,通过设 —log-slow-queries[=file_name]来打开该功能并设置记录位置和文件名, 默认文件名为 hostname-slow.log,默认目录也是数据目录。

慢查询日志采用的是简单的文本格式, 可以通过各种文本编辑器查看其中的内容。中其 记录了语句执行的时刻,执行所消耗的时间,执行用户,连接主机等相关信息。MySQL 还提 供了专门用来分析满查询日志的工具程序mysqlslowdump, 用来帮助数据库管理人员解决可 能存在的性能问题。

Innodb的在线redo日志

Innodb 是一个事务安全的存储引擎, 其事务安全性主要就是通过在线redo 日志和记录

在表空间中的 undo 信息来保证的。redo 日志中记录了 Innodb 所做的所有物理变更和事务 信息, 通过redo 日志和 undo 信息, Innodb 保证了在任何情况下的事务安全性。Innodb 的redo 日志同样默认存放在数据目录下, 可以通过innodb_log_group_home_dir来更改设置日志的 存放位置,通过 innodb_log_files_in_group 设置日志的数量。

更新日志

更新日志是 MySQL 在较老的版本上使用的,其功能和 binlog 基本类似,只不过不是以

二进制格式来记录而是以简单的文本格式记录内容。自从 MySQL增加了binlog功能之后, 就很少使用更新日志了。从版本5.0 开始,MySQL 已经不再支持更新日志了。

总结

mysql查看系统运行日志文件_mysql自身运行日志文件详解相关推荐

  1. mysql索引linke和等于_MySQL之SQL优化详解(三)

    摘要: 致索引失效而转向全表扫描存储引擎不能使用索引中范围条件右边的列mysql在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描isnull,isnotnull也无法使用索引l ...

  2. mysql查看系统可用字符集_MySQL查看所有可用的字符集

    MySQL查看所有可用的字符集 Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL ...

  3. mysql的explain怎么看_mysql中explain用法详解

    如果在select语句前放上关键词explain,mysql将解释它如何处理select,提供有关表如何联接和联接的次序. explain的每个输出行提供一个表的相关信息,并且每个行包括下面的列: 1 ...

  4. mysql慢查询的使用_mysql慢查询使用详解

    1 慢查询定义指mysql记录所有执行超过long_query_time参数设定的时间阈值的SQL语句.慢查询日志就是记录这些sql的日志. 2 开启慢查询日志 找到mysql配置文件my.cnf.在 ...

  5. 在mysql中显示数据库数据类型_MySQL(二) 数据库数据类型详解

    序言 今天去健身了,感觉把身体练好还是不错的,闲话不多说,把这个数据库所遇到的数据类型今天统统在这里讲清楚了,以后在看到什么数据类型,咱度应该认识,下面就跟着我的节奏去把这个拿下吧. ---WZY 一 ...

  6. mysql视图的更新 条件_mysql中视图更新详解

    视图的可更新性与视图中查询的定义是有关的 一.mysql中那些试图使不可更新的?以下类型的视图是不可更新的 1.包含以下关键字的sql语句:聚合函数(sum.min.max.count).distin ...

  7. mysql常见关键字的用法_MySQL 常用关键字用法详解

    MySQL 常用关键字用法详解 在开发工程中,操作数据库的时候经常会有不同类型的条件查询,除了使用where外,Mysql本身也提供了很多常用的关键字.本文主要介绍一些常用的关键字,像update.i ...

  8. mysql数据库字段类型大全_mysql数据库字段类型详解

    MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型.本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述. ...

  9. mysql的所有聚合函数_MySQL常用聚合函数详解

    一.AVG AVG(col) 返回指定列的平均值 二.COUNT COUNT(col) 返回指定列中非NULL值的个数 三.MIN/MAX MIN(col):返回指定列的最小值 MAX(col):返回 ...

  10. mysql和oracle执行计划_mysql explain执行计划详解

    原文链接:https://www.cnblogs.com/xiaoboluo768/p/5400990.html mysql> explain  select t1.kprq from    p ...

最新文章

  1. java8的jvm优化_基于JDK8 版本的SpringBoot 启动参数优化(建议收藏)
  2. 深度解读:人体防御病毒的免疫力究竟是什么?
  3. 各种排序算法思想小结
  4. 用OPENCV视觉解数独
  5. 【opencv学习】【图像的阈值处理】
  6. 东莞村财登录显示服务器断开,“东莞村财”APP运行一年多,还有很多村民股东未注册...
  7. 多个C文件共用一些变量
  8. Ajax实例一:利用服务器计算
  9. opencv检测相交点_OpenCV学习笔记(八) 边缘、线与圆的检测
  10. 从 SGD 到 Adam —— 深度学习优化算法概览(一) 重点
  11. shell自定义函数及参数调用解析
  12. RFC791:INTERNET PROTOCOL网络协议
  13. librdkafka交叉编译
  14. 社会工程学部分攻击经典方法总结
  15. JavaScript根据开始时间和结束时间计算具体礼拜几
  16. 项目经理与技术经理的区别
  17. 信息系统项目管理师必背核心考点(十)信息系统规划
  18. 决策树(python)
  19. Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.1.1:generate
  20. 哪吒之魔童降世视听语言影评_《哪吒之魔童降世》影评4篇

热门文章

  1. SNAT和DNAT的区别
  2. Python安装错误 building 'statsmodels. extensionerror: Microsoft Visual C++ 14.0 is
  3. MATLAB函数记录
  4. leetcode_longest substring without repeating characters
  5. 【图像】直方图均衡化
  6. [云炬创业基础笔记]第七张创业团队测试1
  7. 3DSlicer26:Add Extension/Module filepath,no module named ...
  8. VTK修炼之道19:图像基本操作_图像像素值的访问与修改
  9. WinForm学习笔记(2)
  10. TAdoquery的Filter