MySQL 日志

日志简介

MySQL日志分为四类:

  1. 二进制日志
  2. 错误日志
  3. 查询日志
  4. 慢查询日志
    默认情况下所有的日志都是在MySQL目录中,启动日志功能会降低MySQL的性能,比如,在查询非常频繁的数据库中开启了查询日志,和慢查询日志,MySQL数据库会花费很多时间记录日志,日志还会占用大量空间

二进制日志

二进制日志主要是记录MySQL数据库的变化,,二进制包含了所有更新了数据或者潜在跟新了数据,二进制包含了每个更新数据库语句的执行时间信息,但是不包含没有修改任何数据的语句,二进制日志的目的是最大可能的恢复数据库

  1. 启动二进制日志
    修改配置文件如下图,默认MySQL配置文件在 /etc/mysql/mysql.conf.d/mysql.conf windows的是 my.ini
    把log_bin 和 server-id 打开就行
    在这里插入图片描述
    expire_logs_days 清除过期日志时间
    max_binlog_size 单个文件大小限制,,如果二进制日志写入的内容大小超过给定值,日志就会回滚

  2. show variables like ‘log_%’
    查看日志变量
    可以看到开启成功了
    在这里插入图片描述

在这里插入图片描述
上图中 mysql-bin.index 里面是所有日志文件的清单,
mysq-bin.000001 和 mysq-bin.000002 是 产生的日志文件

删除二进制日志文件

  1. 使用 reset master
    删除所有二进制文件,从000001开始编号
    在这里插入图片描述

  2. 使用 purge master logs to “binlog.000003”
    这条面命令将会删除 编号03之前的日志

  3. purge master logs before “20160130”
    将会删除2016.1.30 日之前创建的日志

show binary logs查看二进制日志
在这里插入图片描述

使用二进制恢复数据库

mysqlbinlog --stop-date=“2016-01-03”
将会把数据库到2016.1.30 日之前的数据恢复

暂时停止二进制功能

  • 暂停
    set sql_log_bin = 0
  • 恢复
    set sql_log_bin = 1

错误日志

错误日志包含了MySQL启动时和停止时的信息,还有MySQL在运行过程中出现的错误信息

查看错误日志
在这里插入图片描述
在这里插入图片描述

通用查询日志

使用通用查询日志,在mysql.conf中添加log参数
log = path/file.name

慢查询日志

log-slow-queries
long_query_time

在这里插入图片描述

发布了50 篇原创文章 · 获赞 9 · 访问量 3435
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章