binlog是什么

MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。使用mysqlbinlog命令,该命令是mysql自带的,使用简单。其运行的本质是将日志记录中的事件再次执行一遍。

常用操作

  • 查看最后的二进制日志名

    • show master status;
  • 查看所有的二进制日志文件
    • show master logs;
  • 清空所有的二进制文件
    • reset master;
  • 查看此时的binlog日志记录
    • show binlog events in 'binlog.000068';
    • 如:日志文件名为binlog.000068

以上4条命令都是在登录数据库后进行使用

  • 查看二进制文件

    • mysqlbinlog mysql-bin.000001
    • 文件名为mysql-bin.000001
  • 数据还原(还原mysql-bin.000001 中记录的日志)
    • mysqlbinlog mysql-bin.000001 | mysql -uroot -proot database;

以上两条命令是在日志文件命令下执行。我的是C:\ProgramData\MySQL\MySQL Server 8.0\Data下执行。

常用选项

  • --start-datetime:从二进制日志中读取指定等于时间戳或者晚于本地计算机的时间
  • --stop-datetime:从二进制日志中读取指定小于时间戳或者等于本地计算机的时间 取值和上述一样
  • --start-position:从二进制日志中读取指定position 事件位置作为开始。
  • --stop-position:从二进制日志中读取指定position 事件位置作为事件截至

这两个选项可以帮助我们最快速的还原到指定时候的数据库

当执行mysqlbinlog --no-defaults mysql-bin.000001命令时,会出现类似以下的内容

如果使用时间选择需要还原的数据时,则命令是

mysqlbinlog --start-datetime="2022-11-22 21:27:30" --stop-datetime="2022-11-22 21:27:40" SC-202103201745-bin.000001 | mysql -uroot -p

如果使用事件位置还原数据时,则可以在数据库中运行show binlog events in 日志文件名;命令

会返回以下数据

起始位置为236,结束位置为534,那么还原数据库的命令为

mysqlbinlog --start-position=236 --stop-position=534 SC-202103201745-bin.000001 | mysql -uroot -p

常见问题

  • 查看日志为sql语句乱码的问题

如果出现像图中一样出现乱码的问题,添加--base64-output=decode-rows -v参数即可。如:

mysqlbinlog --base64-output=decode-rows -v SC-202103201745-bin.000001

mysql中的binlog用法相关推荐

  1. MySQL中show命令用法大全

    MySQL中show命令用法大全 官方文档:https://dev.mysql.com/doc/refman/5.6/en/show.html https://dev.mysql.com/doc/re ...

  2. mysql中change用法,mysql 中alter的用法以及一些步骤

    mysql 中alter的用法以及一些方法 在用到alter的时间,查到了这个文章,就copy下来了,详细进入下面链接: MySQL之alter语句用法总结 1:删除列 ALTER TABLE [表名 ...

  3. mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法

    Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...

  4. mysql中去重的用法_mysql中去重 distinct 用法

    在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条数(count( ...

  5. mysql中的comment用法

    mysql中的comment用法 在MySQL数据库中,字段或列的注释是用属性comment来添加. 创建新表的脚本中, 可在字段定义脚本中添加comment属性来添加注释. 示例代码如下: crea ...

  6. mysql limit 含义_深入分析Mysql中limit的用法

    很久没用mysql的limit,一时大意竟然用错了,自认为(limit 开始,结束),其实错了,正确的应该是(limit 偏移量,条数),为了记住这次错误,转载一篇limit用法详解.推荐给大家,希望 ...

  7. mysql中 where in 用法详解

    https://blog.csdn.net/haibo0668/article/details/52584307 sssss mysql中 where in 用法详解 我是高手高手高高手 2016-0 ...

  8. MySQL中EXISTS的用法

    比如在Northwind数据库中有一个查询为 SELECT c.CustomerId,CompanyName FROM Customers c WHERE EXISTS( SELECT OrderID ...

  9. MySQL中Left Join用法

    MySQL中Left Join用法  例子:  user表:  id name  ---------  1 libk  2 zyfon  3 daodao  user_action表:  user_i ...

最新文章

  1. 接私活渠道,你有技术,就有钱!
  2. B-Tree索引在sqlserver和mysql中的应用
  3. Kafka文件存储机制那些事
  4. sklearn字典特征提取
  5. VTK:可视化之BackfaceCulling
  6. 孙叫兽进阶之路之压力与绩效
  7. 自定义SeekBar 实时显示百分比进度
  8. uint16 累加_如何把一个uint16整数分解成两个字节并传输?
  9. c++ 队列_经典数据结构与算法(一):Python/C/C ++实现堆栈和队列
  10. 《CLR via C#》读书笔记(5)基元类型、引用类型和值类型
  11. GBK字符串转Unicode字符串
  12. W3Cschool菜鸟教程离线版下载链接
  13. 数据分析 告诉你《飞驰人生》为什么这么燃?
  14. 报错: EBUSY: resource busy or locked, lstat ‘C:\hiberfil.sys‘
  15. SSH 通过跳板机连接远程主机
  16. 两个构件的重合点_两构件形成移动副,则两构件重合点的相对速度一定沿移动方向。...
  17. 原生js与jQuery显示隐藏div的几种方法
  18. 【python自动化】基于Splinter的自动化回归/测试脚本
  19. GitHub操作流程
  20. 看完这篇 教你玩转渗透测试靶机——Metasploitable2

热门文章

  1. 跨境电商和淘宝哪个好
  2. 快速编写HTML代码常用的方法
  3. python制表符的作用_Python制表符是什么
  4. [NOIP2017模拟]permut
  5. 前端实习生需要到达什么水平?
  6. Process finished with exit code 135 (interrupted by signal 7: SIGEMT)
  7. 走到最后,摩拜连姓名都不能拥有?
  8. 删除线性表节点(线性表)
  9. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记三(1):Cortex-M3指令集概要
  10. Eclipse BIRT使用之BIRT Designer篇(转)