MySQL之binlog

binlog是什么?它是一个日志,一个归档日志,一个二进制日志,一个逻辑日志,一个server层日志。表示看完了没什么感觉,能动手的最好别bb。看看它能干什么。
建议先打开你的数据库客户端或者“黑窗口”什么的,连接并且登录数据库。
作用:恢复数据,避免删库跑路。
还是来先看看你的数据库有没有开启binlog功能。

SHOW VARIABLES LIKE '%log_bin%';

binlog是否开启
看到这里的ON了吗?恭喜你,你的数据库开启了binlog,为你的数据安全增加了一份保障。如果是OFF,那么参考官方文档或者自行搜索开启binlog配置(本人windows 5.7.12版本因不知名原因配置后无法启动服务就不写配置方法了)。
binlog有三种格式(哪三种方式自行搜索),方式:

SHOW VARIABLES LIKE '%binlog_format%';

binlog格式
如果你已经配置成功,那么找一个不怎么重要的库里的不怎么重要的表增删改数据看看如果用binlog恢复它们。
我执行了一个update:
修改
看上面的截图log_bin_basename,进到这个目录下面查看可以看到一堆:
binlog文件
通过文本方式打开它,会发现一堆乱七八糟的东西,因为它是二进制日志。使用mysqlbinlog命令查看:

mysqlbinlog -v --start-datetime="2022-06-01 15:00:00" --stop-datetime="2022-06-01 15:30:00" ../data/binlog.000243 > ../data/temp.log

注意:本文所有操作皆在windows下进行的。mysqlbinlog在bin目录下,需要进入bin目录执行;日期用双引号,要找准日志文件的位置,temp.log是一个临时转存文件。
在这里插入图片描述
我这里看到一些这样的东西,看下@1、@2、@3分别对应了表里的字段,重点看下@1、@3(不要在意乱码,我数据库数据本身就这样)。实际上这一堆东西就是伪sql,一堆执行逻辑(逻辑日志)。将它们整理好,放到客户端执行就可以恢复修改的数据了。
mysqlbinlog语法:

mysqlbinlog [options] log-files

options:可选参数
log-files:文件名称

[options]常用值:

-d: 根据数据库的名称筛选日志
-o:跳过前N行日志
-r, --result-fil: 把日志输出到指定文件
–start-datetime: 读取指定时间之后的日志,时间格式:yyyy-MM-dd HH:mm:ss
–stop-datetime: 读取指定时间之前的日志,时间格式:yyyy-MM-dd HH:mm:ss
–start-position: 从指定位置开始读取日志
–stop-position: 读取到指定位置停止
–base64-output:在row格式下,显示伪sql语句
-v, --verbose:显示伪sql语句,-vv可以为sql语句添加备注
–set-charset:设置输出文件编码

主从架构需要用到
(没有实际操作过,暂时就不写了)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值