MySQL日志详解

参考资料:https://dev.mysql.com/doc/refman/5.7/en/server-logs.htmlhtml

分类

mysql 常见日志分为如下几种:
日志类型 | 日志内容
---|---
错误日志 | mysql 启动、中止和运行过程当中出现的异常
常规操做日志 | 已建立客户端链接和客户端处理记录
二进制日志 | 数据变动日志(可用于同步)
转存日志 | 从主服务器同步的数据记录
慢查询日志 | 耗时超过 long_query_time 所设置时间的查询
DDL日志(元日志) | ddl 语句执行的元数据操做mysql

分类简介

此部分介绍经常使用的日志配置项,全部配置项请参考:https://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html#option_mysqld_relay-logsql

Error Log(错误日志)

主要记录 mysql 启动、中止和运行过程当中出现的异常,与其关联的配置项包括:数据库

  • log_error:设置日志文件的位置,设置此参数同时开启日志记录,默认放在 mysql data目录下
  • log_error_verbosity:日志级别,默认值为3,1表明只记录Error,2表明Error和Waring,3表明Error、Warning和Note

General Query Log(常规操做日志)

常规操做日志能够说是内容最全的日志,包括全部 mysql 所做的操做和链接状况。因为此类日志记录内容较多,因此对数据库性能会有必定的影响,因此在生产环境中不建议开启,与其相关的配置项以下:服务器

  • general_log:开关日志,0/OFF表明关,1/ON表明开
  • general_log_file:日志文件位置性能

    即便mysql运行过程当中也能够经过命令行设置以上两个参数修改日志。命令行

    SET GLOBAL general_log = 'ON';

Binary Log(二进制日志)

二进制日志能够说是使用率最高的日志了,由于能够经过它对数据库进行回复,因此建议在生产环境上启用。二进制日志没法直接打开,不过 mysql 自己提供了 mydqlbinlog 程序用于查看(具体查看方法参考https://www.jianshu.com/p/b30264768d04)。与其相关的参数以下:日志

  • log-bin:设置日志文件的位置,设置此参数同时开启日志记录,默认放在 mysql data目录下
  • max_binlog_size:日志文件大小上限,二进制日志文件后缀名会由 mysql 自动拼接数字,达到此参数设置大小则写入另外一个文件,同时后缀 + 1,因此在设置 log-bin 参数时仅填写路径和文件名便可,后缀名省略

Slave Relay Log(转存日志)

转存日志能够理解为一种特殊的二进制日志,其特殊在此日志中记录的是主从关系中,从数据库从主数据库同步过来的数据。做为一种二进制日志,一样可使用 mysqlbinlog 程序进行查看,与其相关的配置参数包括:code

  • relay-log:转存日志文件名
  • relay-log-index:转存日志索引文件名
  • max_relay_log_size:转存文件大小限制,若是不设置则使用 max_binglog_size 的设置。

Slow Query Log(慢查询日志)

慢查询日志在调优过程当中使用的比较多,其中主要记录的是执行较慢的操做,具体时间可经过参数进行设置。与其相关的配置项以下:server

  • slow_query_log:是否开启慢查询日志,可选值为0和1,默认为0。
  • slow_query_log_file:慢查询日志文件名。
  • long_query_time:时间长度,单位毫秒,超过此时间的操做将会被记录至日志。
  • log_slow_admin_statements:是否记录管理员维护操做,可选值为ON/OFF,默认为OFF。
  • log_queries_not_using_indexes:是否记录未使用索引的查询可选值为ON/OFF,默认为OFF。

    慢查询日志不必定非要看日志文件,经过 mysqldumpslow 命令可在控制台直接查看。

相关文章
相关标签/搜索