前言:

在 MySQL 系统中,有着诸多不同类型的日志。各种日志都有着自己的用途,通过分析日志,我们可以优化数据库性能,排除故障,甚至能够还原数据。这些不同类型的日志有助于我们更清晰的了解数据库,在日常学习及运维过程中也会和这些日志打交道。本节内容将带你了解 MySQL 数据库中几种常用日志的作用及管理方法。

1.错误日志(errorlog)

错误日志记录着 mysqld 启动和停止,以及服务器在运行过程中发生的错误及警告相关信息。当数据库意外宕机或发生其他错误时,我们应该去排查错误日志。

log_error 参数控制错误日志是否写入文件及文件名称,默认情况下,错误日志被写入终端标准输出stderr。当然,推荐指定 log_error 参数,自定义错误日志文件位置及名称。

# 指定错误日志位置及名称vim /etc/my.cnf [mysqld] log_error = /data/mysql/logs/error.log相关配置变量说明:log_error={1 | 0 | /PATH/TO/ERROR_LOG_FILENAME}定义错误日志文件。作用范围为全局或会话级别,属非动态变量。

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

慢查询日志是用来记录执行时间超过 long_query_time 这个变量定义的时长的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化。

与慢查询相关的几个参数如下:

  • slow_query_log:是否启用慢查询日志,默认为0,可设置为0,1。
  • slow_query_log_file:指定慢查询日志位置及名称,默认值为host_name-slow.log,可指定绝对路径。
  • long_query_time:慢查询执行时间阈值,超过此时间会记录,默认为10,单位为s。
  • log_output:慢查询日志输出目标,默认为file,即输出到文件。

默认情况下,慢查询日志是不开启的,一般情况下建议开启,方便进行慢SQL优化。在配置文件中可以增加以下参数:

# 慢查询日志相关配置,可根据实际情况修改vim /etc/my.cnf [mysqld] slow_query_log = 1slow_query_log_file = /data/mysql/logs/slow.loglong_query_time = 3log_output = FILE

3.一般查询日志(general log)

一般查询日志又称通用查询日志,是 MySQL 中记录最详细的日志,该日志会记录 mysqld 所有相关操作,当 clients 连接或断开连接时,服务器将信息写入此日志,并记录从 clients 收到的每个 SQL 语句。当你怀疑 client 中的错误并想要确切知道 client 发送给mysqld的内容时,通用查询日志非常有用。

默认情况下,general log 是关闭的,开启通用查询日志会增加很多磁盘 I/O, 所以如非出于调试排错目的,不建议开启通用查询日志。相关参数配置介绍如下:

# general log相关配置vim /etc/my.cnf [mysqld]general_log = 0 //默认值是0,即不开启,可设置为1general_log_file = /data/mysql/logs/general.log //指定日志位置及名称

4.二进制日志(binlog)

关于二进制日志,前面有篇文章做过介绍。它记录了数据库所有执行的DDL和DML语句(除了数据查询语句select、show等),以事件形式记录并保存在二进制文件中。常用于数据恢复和主从复制。

与 binlog 相关的几个参数如下:

  • log_bin:指定binlog是否开启及文件名称。
  • server_id:指定服务器唯一ID,开启binlog 必须设置此参数。
  • binlog_format:指定binlog模式,建议设置为ROW。
  • max_binlog_size:控制单个二进制日志大小,当前日志文件大小超过此变量时,执行切换动作。
  • expire_logs_days:控制二进制日志文件保留天数,默认值为0,表示不自动删除,可设置为0~99。

binlog默认情况下是不开启的,不过一般情况下,建议开启,特别是要做主从同步时。

# binlog 相关配置vim /etc/my.cnf [mysqld]server-id = 1003306log-bin = /data/mysql/logs/binlogbinlog_format = rowexpire_logs_days = 15

5.中继日志(relay log)

中继日志用于主从复制架构中的从服务器上,从服务器的 slave 进程从主服务器处获取二进制日志的内容并写入中继日志,然后由 IO 进程读取并执行中继日志中的语句。

relay log 相关参数一般在从库设置,几个相关参数介绍如下:

  • relay_log:定义 relay log 的位置和名称。
  • relay_log_purge:是否自动清空不再需要中继日志,默认值为1(启用)。
  • relay_log_recovery:当 slave 从库宕机后,假如 relay log 损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的 relay log ,并且重新从 master 上获取日志,这样就保证了 relay log 的完整性。默认情况下该功能是关闭的,将 relay_log_recovery 的值设置为1可开启此功能。

relay log 默认位置在数据文件的目录,文件名为 host_name-relay-bin,可以自定义文件位置及名称。

# relay log 相关配置,从库端设置vim /etc/my.cnf [mysqld]relay_log = /data/mysql/logs/relay-binrelay_log_purge = 1relay_log_recovery = 1

总结:

本篇文章主要讲述了 MySQL 中的几类日志的用途及设置方法,需要注意的是,上述几类日志,若不指定绝对路径,则默认保存在数据目录下,我们也可以新建一个日志目录专用于保存这些日志。还有 redo log 和 undo log 没有讲解,留在下篇文章吧。

4j 设置日志保存天数_MySQL中的这几类日志,你一定要知道相关推荐

  1. 4j设置文件保存天数_文件备份很麻烦,各种工作不知道怎么选择,容器时代的备份方案!...

    前言 容器化是当前的趋势,文件备份系统网上虽然有很多种,不过使用配置起来并不是很方便,这里将介绍通过自己基于rsync做的一套文件备份系统,容器化配置简单易懂,镜像只有几兆 - 支持保留文件权限 - ...

  2. tomcat mysql报错日志在哪_mysql 中记录用户登录错误日志...-Tomcat远程调试-java书上小例子6_169IT.COM...

    接口:  java不支持多继承性,即一个类只能有一个父类,单继承性使得java简单,易于管理程序,为了克服单继承的缺点,java使用接口,一个类可以使用多个接口 使用 interface来定义接口 接 ...

  3. mysql general bin区别_MySQL中几种常见的日志

    前言: 在 MySQL 系统中,有着诸多不同类型的日志.各种日志都有着自己的用途,通过分析日志,我们可以优化数据库性能,排除故障,甚至能够还原数据.这些不同类型的日志有助于我们更清晰的了解数据库,在日 ...

  4. php输出mysql错误日志_PHP_PHP中把错误日志保存在系统日志中(Windows系统),【将错误记录到系统日志中】 - phpStudy...

    PHP中把错误日志保存在系统日志中(Windows系统) [将错误记录到系统日志中] 在 php.ini 中将 error_log 设置为: error_log = syslog 或者在运行时使用 i ...

  5. php 系统日志,PHP中把错误日志保存在系统日志中(Windows系统)

    PHP中把错误日志保存在系统日志中(Windows系统) [将错误记录到系统日志中] 在 php.ini 中将 error_log 设置为: 复制代码 代码如下: error_log = syslog ...

  6. php 保存错误日志,PHP中把错误日志保存在系统日志中_PHP教程

    PHP中把错误日志保存在系统日志中 这篇文章主要介绍了PHP中把错误日志保存在系统日志中(Windows系统),本文讲解了设置方法和查看方法,需要的朋友可以参考下 [将错误记录到系统日志中] 在 ph ...

  7. mysql重做日志恢复数据_MySQL中重做日志,回滚日志,以及二进制日志的简单总结...

    MySQL中有六种日志文件, 分别是:重做日志(redo log).回滚日志(undo log).二进制日志(binlog).错误日志(errorlog).慢查询日志(slow query log). ...

  8. mysql 5.7日志的种类_MySQL中的六种日志类型的介绍

    MySQL主要有以下几种日志类型: 错误日志――MySQL服务启动和关闭过程中的信息以及其它错误和警告信息.默认在数据目录下. 一般查询日志――用于记录select查询语句的日志.general_lo ...

  9. mysql配置日志老化配置_mysql中日志的配置与分析

    默认情况下,如果日志没有配置,则只记录错误日志,记录到syslog,配置文件 /etc/mysql/conf.d/mysqld_safe_syslog.cnf (ubuntu下) [mysqld_sa ...

最新文章

  1. 电脑总有安装计算机更新,为什么我们的电脑总会莫名的安装垃圾软件,看完吓一跳,欢迎关注...
  2. argparse subparsers()
  3. java set path_Java Path.setEffect方法代码示例
  4. japidocs怎么设置参数必填_JApiDocs 动态生成接口文档,并解析java 源码中的注释...
  5. keytool 错误:java.to.FileNotFoundException:
  6. jvm系列(九):如何优化Java GC「译
  7. bufferedwriter缓冲区设置多大比较合适_画册设计一般多大?宣传册设计用多大尺寸比较合适?...
  8. windows获取IP和MAC地址【Qt】
  9. Zookeeper(三)——选举机制
  10. 23-新建maven 项目
  11. python数据持久存储:pickle模块的基本使用
  12. 更细日期2015年8月18日- Citrix vGPU解决方案注意事项
  13. linux 下spi的使用 ,cc2500模块驱动
  14. 小米6刷peixl安卓8详细教程
  15. linux 检查系统丢包,Linux 下网络丢包问题处理
  16. 计算机控制pwm,如何制作自制脉宽调制(PWM)电机控制电路
  17. 【TCAX+AVS+MeGui】这里讲讲过气tcax内置特效的制作流程吧
  18. syswow64删除文件_syswow64 c盘syswow64可以删除吗
  19. 激光雕刻机装上AI,混合材料T恤上都能雕出花,自动变换力度保证不割破
  20. 60mph和kmh换算_mph换算kmh(mph换算器)

热门文章

  1. mysql page校验_MySQL InnoDB离线校验工具innochecksum使用
  2. 魅族android6.0,【魅族魅蓝5s评测】迷人Flyme 安卓6.0提升流畅度_手机评测-中关村在线...
  3. zookeeper 密码_「附源码」Dubbo+Zookeeper 的 RPC 远程调用框架
  4. 0-1背包动态规划c语言,动态规划解决0-1背包问题程序看不懂,请大家看看帮忙解决下...
  5. 动态让控件超出屏幕_JAVA浏览器控件JxBrowser v7.5上线!更轻松处理Dynamic Favicons...
  6. js中while死循环语句_Java系列教程day06——循环语句
  7. mysql pl安装教程_ubuntu 16 mysql安装包安装 (推荐在线安装)
  8. node mysql登录注册_图解NodeJS实现登录注册功能
  9. 三、新手Jupyter不会用,我十招教你盘她
  10. Graphviz使用