mysqlbinlog学习小记

今天给大家介绍一种mysql自带的日志分析工具,这种工具对于生产环境来说,十分的有用。想当初我们公司一次有个员工的重大失误删除了一个重要的动态表的全部数据,那个可是正在运行的生产环境呀。就是靠着这个mysqlbinlog拯救回来的,不然损失惨重呀。
话不多说,开始正题吧!
mysqlbinlog就是可以记录任何时间对数据库的操作(建库和建表建用户等)和修改(增删改查)
也就是所谓的DDL((Data Definition Language)数据定义语言)和DML(数据操纵语言,Data Manipulation Language )
作用:
1、可以用于恢复数据。
2、可用于复制数据库

配置文件

那我们开始使用吧:

  1. 配置文件位置:
    (1)windows下mysql的配置文件是my.ini(可费了劲了,我为了测试使用的是本机创建的数据库,是windows版本,网上教程都说的是linux版的),一般安装在安装目录的根目录下。
    (2)liunx下mysql的配置文件名为my.cnf,一般会放在/etc/my.cnf目录下
    如果没有,请使用find命令进行查找。

  2. 检查需要操作的mysql数据库的配置文件是否开启binlog模式。
    打开mysql服务,输入命令:
    show variables like 'log_bin'
    检查是否开机binlog命令
    可以看到我的log_bin命令是开启状态。它默认是关闭状态

  3. 如何开启binlog?
    最简单的方式就是打开刚才那个my.ini/my.cnf文件,增加一行:

#log_bin=某个你需要存储的位置以及binlog文件的名字。
log_bin = mysqlbin
  1. 存储格式
    (1)如何查看

#在mysql命令行中输入:

show variables like 'binlog_format';

在这里插入图片描述
(2)存储格式种类

STATEMENT
记录SQL语句。日志文件小,节约IO,但是对一些系统函数不能准确复制或不能复制,如now()、uuid()等

ROW
记录表的行更改情况,可以为数据库的恢复、复制带来更好的可靠性,但是二进制文件的大小相较于STATEMENT会有所增加

MIXED
STATEMENT和ROW模式的混合。默认采用STATEMENT格式进行二进制日志文件的记录,但是在一些情况下会使用ROW格式。
一般都是用row模式。比较精准。

  1. binlog文件相关命令:
    获取binlog文件列表:
show binary logs

在这里插入图片描述

查看正在写入的文件

show master status

在这里插入图片描述
查看指定binlog文件的内容:

show binlog events in 'mysqlbin.000002';

查看binlogs的过期时间:

show variables like 'expire_logs_days';

设置过期时间:

 set global expire_logs_days=1;

在这里插入图片描述

恢复数据方式

退出mysql命令行,执行恢复数据命令。
mysqlbinlog.exe -base64 -output=DECODE_ROWS -v 目录/mysqlbin.000001 >输出路径/***.sql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值