MySQL之日志

MySQL日志

  • 在任何一种数据库中,都有各种各样的日志,记录着数据库工作的方方面面,以帮助数据库管理员追踪数据库曾经发生过的各种事件
  • 在MySQL中,有四种不同的日志。分别是错误日志,二进制日志,查询日志,慢查询日志

错误日志

  • 错误日志是MySQL中最重要的日志之一,它记录了MySQL启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致正常使用时,可以查看此日志
  • 该日志是默认开启的,默认存放目录为数据目录(var/lib/mysql),默认日志文件名为hostname.err(hostname是主机名)
  • 查看日志位置指令show variable like ‘log_error%';

二进制日志

  • 二进制日志记录了所有ddl(数据定义)语句和dml(数据操纵语句),但不包括数据查询语句。此日志对于灾难时的数据恢复起着重要作用,MySQL的主从复制就是通过binlog实现的

  • 二进制日志,默认是没有开启的。需要到MySQL的配置文件中开启,并配置MySQL日志的格式

  • 配置文件位置:/usr/my.cnf

  • 日志存放位置:配置时,给定了文件名但是没有指定路径,日志默认写入MySQL的数据目录

  • 配置开启binlog日志

    #默认开启binlog日志,日志的文件前缀为mysqlbin --->生成的文件名如:mysqlbin.000001,mysqlbin.00002
    log_bin=mysqlbin
    #配置二进制日志的格式
    binlog_format=STATEMENT
    
  • 日志格式

    • STATEMENT
      • 该日志格式在日志中记录的都是SQL语句,每一条数据进行修改的SQL都会记录在日志文件中,通过MySQL提供的MySQLbinlog工具,可以清晰的查看到每条语句的文本。主从复制的时候,从库(slave)会将日志解析为原文本,并在从库重新执行一次
    • ROW
      • 该日志格式在日志中记录的是每一行的数据变更,而不是记录SQL语句。比如执行SQL语句:update tb_name set status=1,那么由于该SQL语句是对全表进行更新,也就是每一条记录都会发生变更。row格式的日志中会记录每一行的数据变更。
    • MIXED
      • 这是MySQL目前默认的日志格式,即混合了STATEMENT和ROW俩种格式。默认情况下采取statement,但在一些特殊情况下采用row来进行记录,mixed格式能尽量利用俩种格式的优点,而避开他们的缺点
  • 查看ROW格式日志

    • msyqlbinlog -vv mysqlbin.000002
  • 日志删除

    • 执行删除指令reset master,删除的是全部binlog日志,删除之后,日志编号将从xxxx.000001开始,在目录中保留了xxxxx.000001,但里面是个空的日志文件,只保留了基本信息
    • purge master logs to 'mysqlbin.xxxxxx',该命令将删除xxxxxx编号之前的所有日志
    • purge master logs before ‘yyyy-mm-dd hh24:mi:ss',该命令会删除日志为‘yyyy-mm-dd hh24:mi:ss'之前的二进制日志
    • 设置日志过期时间--expire_logs_days=#,此参数设置过期的天数,过了指定的天数后日志将会自动删除

查询日志

  • 查询日志记录了客户端的所有操作语句,而二进制日志不包含查询数据的SQL语句
  • 默认情况下,查询日志是未开启的,如果需要开启查询日志,可以设置以下配置:
general_log=1

#设置查询日志的文件名,如果没有指定,默认的文件名为host_name.log
general_log_file=file_name

慢查询日志

  • 慢查询日志记录了所有执行时间超过参数long_query_time设置值并且扫描记录数不小于min_examined_limit的所有SQL语句的日志
  • 慢查询日志默认是关闭的
#打开
slow_query_log=1

#该参数用来指定慢查询日志的文件名
slow_query_log_file=slow_query.log

#该选项用来配置查询的时间限制
long_query_time=10
  • 日志的读取
  • 和错误日志,查询日志一样,慢查询日志也是纯文本模式,可以直接读取
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值