mysql自身没有提供flashback功能,所以我们在误操作之后要恢复数据就麻烦很多,如果不用别人的插件,下面这种方法可以恢复
1.binlog必须开启,并且必须是ROW模式。如果这个前提不满足,那么下面这种方法恢复不了数据。
查看binlog是否开启 show variables like '%log_bin%'
查看binlog的模式 show variables like '%binlog_format%'
在my.ini中加入这两行
# binlog日志文件名前缀
log-bin=mysql_bin
# binlog格式
binlog_format=ROW
2.user表删除一条数据 DELETE from user where name='路飞',这个时候在data文件夹中就会产生binlog
3.使用 show BINARY logs; 命令查看binlog列表
4.000006最大,这个最新的日志就是记录在000006里面,使用show binlog events in 'mysql_bin.000006'; 命令来查看000006这个binlog具体细节,主要是看start-pos和stop-pos
从图中可以看出最后一次操作从pos=14043开始,到pos=14171结束
5.命令行cd到MySQL的bin目录下我的路径是E:\program\db\mysql-5.6.17-winx64\bin
6.使用mysql自带的mysqlbinlog命令来查看bin_log.000006的具体sql,命令为
E:\program\db\mysql-5.6.17-winx64\bin>mysqlbinlog --start-position=14043 --stop-position=14171 -v -v ../data/mysql_bin.000006
我们已经看到sql了,如果数据中只有英文到没什么,如果数据中有中文居然会出现乱码,mysqlbinlog有一个指定编码的参数,我试过,没什么用。-v表示显示sql, -v -v显示行定义,可以用 mysqlbinlog --help查看各个参数含义
7.如果遇到中文乱码就不要在命令行下面看了,使用命令 E:\program\db\mysql-5.6.17-winx64\bin>mysqlbinlog --start-position=14043 --stop-position=14171 -v -v ../data/mysql_bin.000006>d:\3.sql
把这个查看结果导出到D盘,然后用notepad++来打开它
显示正常,如果是Linux出现乱码问题,导出到windows用notepad++打开
8.上图中@1=2 @2='路飞' 这个表的第一列=2,第二列=路飞的数据被删了。既然知道被删的数据的具体信息了,那就可以手动恢复这条数据。如果数据量太大,可以借助一些其他工具或者自己写个程序来恢复。
mysql -uroot -p dbname < 3.sql也可以
参考:http://www.cnblogs.com/kevingrace/p/5904800.html
- 大小: 8.2 KB
- 大小: 22.1 KB
- 大小: 26.8 KB
- 大小: 59.9 KB
- 大小: 48.4 KB
分享到:
相关推荐
mysqlbinlog和binlog2sql的使用及mysql通过binlog日志恢复数据库数据
5. **查看binlog事件并恢复数据**:通过`show binlog events in 'mysql-bin.000002'`查看binlog文件中的事件,然后使用`mysqlbinlog`工具指定开始和结束位置恢复特定数据,例如: ``` mysqlbinlog --start-...
当面临数据丢失或误删除的情况时,binlog日志成为恢复数据的关键。 首先,要确认binlog日志是否启用。这可以通过检查MySQL配置文件(在Windows系统中通常是my.ini,Linux系统中为my.cnf)中`log-bin`选项是否设置为...
### MySQL利用binlog恢复库表 #### 一、利用binlog恢复库表的背景与重要性 在数据库管理中,由于误操作等...需要注意的是,在生产环境中使用binlog恢复数据时,一定要小心谨慎,确保不会对现有数据造成不必要的影响。
`mysql-binlog-connector-java` 是一个开源库,它允许Java应用程序实时读取MySQL的binlog事件,从而实现增量数据的收集。本资源包主要探讨了如何利用此库在Spring Boot项目中实现这一功能。 首先,我们需要理解...
在进行数据恢复时,我们可以使用 Percona-xtrabackup 工具来恢复数据,并且使用 MySQL 5.7 binlog 来还原数据库到某个特定的时间点。这样,我们就可以实现数据即时点恢复。 MySQL-xtrabackup 工具提供了多种备份...
在实际操作中,如果你遇到数据库故障或需要从binlog恢复数据,这些工具能大大提高效率。例如,当数据库因意外丢失或损坏而无法启动时,可以使用binlog和binlog查看工具配合备份数据来恢复到最近的已知良好状态。 ...
总结来说,MySQL Binlog Digger是MySQL数据库管理员的重要工具,它提供了一种高效的方式来检查和利用binlog进行数据恢复,同时通过不断更新和优化,确保了在不同场景下的稳定性和效率。在处理数据恢复问题时,这款...
MySQL 二进制日志恢复 MySQL 的二进制日志(binlog)是 MySQL server 的一个重要组件,记录...MySQL 二进制日志恢复是指从二进制日志中恢复数据的过程。使用 mysqlbinlog 工具可以轻松地从二进制日志文件中恢复数据。
这是一个eclipse安装插件,在oxygen下测试是可用的。...操作:1、获取binlog文件 2、选中要处理的部分 3、选择菜单“jhh->binlog->”下对应的操作 4、会在相同目录下生成sql文件(文件名相同,加了sql后缀)
MySQL的binlog(二进制日志)是数据库系统中用于记录事务操作的重要组件,它在数据一致性、灾难恢复和主从复制等方面扮演着关键角色。binlog类似于Oracle的重做日志和Arterybase的Write-Ahead Log (WAL)日志,它详细...
本篇文章将详细探讨如何使用Python工具binlog2sql来从binlog文件中还原SQL语句或恢复数据。 **一、binlog2sql工具介绍** binlog2sql是一款开源的Python工具,其主要功能是从MySQL的binlog文件中解析出SQL语句,...
4. 分析和恢复数据。打开output.sql文件,查看SQL语句,找出需要恢复或撤销的操作。如果要撤销操作,可以直接在另一个测试环境中执行这些SQL的逆操作,或者根据需要编写脚本来实现。 5. 在确保无误后,将恢复操作...
MySQL的binlog(二进制日志)是数据库系统中至关重要的组件,它记录了所有对数据库进行...在面临磁盘故障时,binlog可以成为恢复数据的关键。因此,了解和熟练掌握binlog的相关知识对数据库管理员来说是至关重要的。
MySQL的binlog(二进制日志)是数据库系统中非常关键的一个组件,它记录了所有改变数据库状态的事务操作,对于数据恢复、主从复制、审计和数据分析等任务至关重要。今天我们将深入探讨如何利用binlog进行分析,特别...
通过binlog日志进行mysql数据恢复
使用这种方式的前提必须有最近的备份集或者知道出现误操作起始的binlog 位点或者GTID,利用备份集恢复到中间的机器上,然后利用MySQL的slave 特性 START SLAVE [SQL_THREAD] UNTIL MASTER_LOG_FILE = ‘log_n
### MySQL通过Data文件夹恢复数据和存储过程的方法 在MySQL数据库管理中,有时我们需要从data文件夹中恢复数据和存储过程。这种情况可能出现在多种场景下,例如:误删除了重要的数据库对象、数据库出现故障需要紧急...
由于mysqlbinlog命令下无法筛选出某一个表的数据所以只能把日志文件全部导出