binlog怎么恢复mysql数据库(mysql5.7使用binlog 恢复数据的方法)
binlog怎么恢复mysql数据库
mysql5.7使用binlog 恢复数据的方法第一步:保证mysql已经开启binlog
|
show variables like '%log_bin%' ; log_bin 为 on 是开启。 |
第二步:进入binlog文件目录,找到二进制日志文件
|
mysql> show binary logs; #获取binlog文件列表 mysql> show master status; #查看当前正在写入的binlog文件 mysql> reset master; 重置binlog |
第三步: 通过mysqlbinlog工具命令查看数据库增删改查记录(必须切换到mysqlbinlog目录才有效)或者直接指定binlog
例子1:查询2021-3-12 14:00:00到2021-3-12 14:03:00 数据库为 g_xinxiangshop的操作日志,输入如下命令将数据写入到一个备用的txt文件中
/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=g_xinxiangshop --start-datetime=“2021-3-12 14:00:00” --stop-datetime=“2021-3-12 14:03:00” /usr/local/mysql/data/mysql-bin.000001 > /tmp/binlog.txt
例子2:查询2021-3-12 14:00:00到2021-3-12 14:03:00 数据库为 g_xinxiangshop的操作日志,并且过滤出 只包括 g_user表数据的操作记录 ,输入如下命令将数据写入到一个备用的txt文件中
/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=g_xinxiangshop --start-datetime=“2021-3-12 14:00:00” --stop-datetime=“2021-3-12 14:03:00” /usr/local/mysql/data/mysql-bin.000001 | grep g_user > /tmp/binlog.txt
例子3:查询2021-3-15 15:25:00到2021-3-15 15:35:00 数据库为 g_shoptest 的操作日志,并输出到屏幕上
/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=g_shoptest --start-datetime=“2021-3-15 15:25:00” --stop-datetime=“2021-3-15 15:35:00” /data/mysql/mysql-bin.000001 |more
图片和例1、例2内容一样 看到了truncate操作 和记录点 就可以做恢复操作了!
第四步:测试利用bin_log恢复数据
登录mysql
测试:
1、 reset master; 重置binlog并重新生成记录日志
2、 测试某个表 插入一条数据 然后不小心删除了。
3、 查看bin-log 命令:show binlog events in ‘mysql-bin.000001';
如上图
我们看到删除点在928到 1294 ;之前的新增的数据 在154到520
/usr/local/mysql/bin/mysqlbinlog /usr/local/mysql/data/mysql-bin.000001 --start-position 154 --stop-position 520 | mysql -uroot -p g_shoptest
执行完毕之后 去看看删除那条数据吧 又回来了
binlog命令
1.最长用的就是回复指定数据端的数据了,可以直接恢复到数据库中:
|
mysqlbinlog --start-date="2021-3-12 14:00:00" --stop-date="2021-3-12 14:03:00" mysql_bin.000001 |mysql -uroot -p123456 |
2.指定开始结束位置,从上面的查看产生的binary log我们可以知道某个log的开始到结束的位置,我们可以在恢复的过程中指定回复从a位置到b位置的log.需要用下面两个参数来指定:
- --start-positon="50" //指定从50位置开始
- --stop-postion="100"//指定到100位置结束
/usr/local/mysql/bin/mysqlbinlog /usr/local/mysql/data/mysql-bin.000001 --start-position 7903538 --stop-position 7904498|mysql -uroot -p123456
**常见错误 error: error in log_event::read_log_event(): ‘found invalid event in binary log', data_len: 31, event_type: 35
*问题为mysqlbinlog版本所导致
查看当前os使用的mysqlbinlog
|
shell> which mysqlbinlog /usr/bin/mysqlbinlog |
查看mysql当前使用的mysqlbinlog
|
± --------------±------------------+ | variable_name | value | ± --------------±------------------+ | basedir | /usr/ local /mysql/ | ± --------------±------------------+ |
mysql> show variables like ‘basedir';
对比两个版本
|
shell> /usr/bin/mysqlbinlog --version shell> /usr/ local /mysql/bin/mysqlbinlog --version |
解决此问题指定mysqlbinlog路径即可
/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=g_xinxiangshop --start-datetime=“2021-3-12 14:00:00” --stop-datetime=“2021-3-12 14:03:00” /usr/local/mysql/data/mysql-bin.000001 > /tmp/binlog.txt
到此这篇关于mysql5.7使用binlog 恢复数据的方法的文章就介绍到这了,更多相关mysql binlog 恢复数据内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://blog.csdn.net/weixin_45389237/article/details/114700972
- mysql dateformat(MySQL的DATE_FORMAT函数的使用)
- 如何用wampserver打开自己写的php(WampServer下安装多个版本的PHP、mysql、apache图文教程)
- mysqltruncate(MYSQL中Truncate的用法详解)
- MySQL中NULL和空值的区别
- mysql数据库基础练习(最全50个Mysql数据库查询练习题)
- mysql8.0使用(MySQL 8.0新特性 — 检查性约束的使用简介)
- docker部署mysql并且自动启动(Docker 部署 Mysql8.0的方法示例)
- python怎么操作mysql(详解Python的数据库操作pymysql)
- mysql获取当前日期时间(MySQL DATEDIFF函数获取两个日期的时间间隔的方法)
- mysql命令输入行在哪(MySQL命令行操作时的编码问题详解)
- 在mysql语法中用来修改数据的命令(explain命令为什么可能会修改MySQL数据)
- mysql索引应该注意的地方(关于MySQL索引知识的小妙招)
- 怎样查看mysql的ddl窗口(详解MySQL8.0原子DDL语法)
- mysql如何使用临时表(MySQL中临时表的使用示例)
- 设置mysql字符集语句(MySQL修改字符集的实战教程)
- mysql索引面试总结(Mysql数据库索引面试题程序员基础技能)
- 太鸡贼了,这老小区轻松搞定了停车问题(这老小区轻松搞定了停车问题)
- 太鸡贼了,这老小区轻松搞定了停车问题(这老小区轻松搞定了停车问题)
- 节日我在岗|警景相融 平安相伴(节日我在岗警景相融)
- 战 疫 时刻 致敬每一位石化大学的 守护者(战疫时刻)
- 老弄堂里的市井味道(老弄堂里的市井味道)
- 小米音乐可绑定QQ音乐, QQ音乐 真的会消失在小米的设备上吗(小米音乐可绑定QQ音乐)
热门推荐
- java怎么调用支付宝的扫码支付(python实现银联支付和支付宝支付接入)
- jquery无缝滚动代码(jQuery实现表格行数据滚动效果)
- laravel接口请求模拟(Laravel框架控制器的request与response用法示例)
- C# volatile与lock
- iframe标签教程(关于解决iframe标签嵌套问题的解决方法)
- vmwareworkstationlinux修改配置(VMware Workstation Pro 16搭建CentOS8虚拟机集群的图文教程)
- datatable添加行列
- python的decode函数在哪个模块(python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决)
- python抓取贴吧标题和图片代码(Python实现的爬取百度贴吧图片功能完整示例)
- SQL Server的恢复模式