mysql通过binlog恢复数据
来源:互联网 发布:12306显示网络有问题 编辑:程序博客网 时间:2024/05/16 16:00
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
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
阅读全文
0 0
- mysql通过binlog恢复数据
- mysql通过Binlog恢复数据
- mysql通过binlog恢复数据
- mysql通过binlog恢复数据
- mysql 数据恢复 通过binlog恢复数据
- MySQL通过binlog来恢复数据
- MYSQL数据BINLOG恢复
- mysql binlog恢复数据
- mysql怎样通过binlog恢复被恶意删除的数据?
- mysql通过Binlog恢复数据到sql文件实战
- mysql通过binlog恢复数据的几种情况
- MySQL--binlog日志恢复数据
- 使用 mysql binlog 恢复数据
- MySQL binlog日志恢复数据
- mysql通过mysqldump和mysqlbinlog恢复数据,binlog恢复数据失败解决方案
- MySQL通过Binlog恢复删除的表
- MySQL--binlog二进制日志恢复数据
- 利用mysql的binlog恢复数据
- oracle jdbc 连接字符串
- myeclipse配置多个tomcat
- mongodb导出数据导入mysql
- 身份证验证
- 阿里巴巴Java开发规约扫描插件-Alibaba Java Coding Guidelines 在idea上安装使用教程
- mysql通过binlog恢复数据
- 读取文本
- myeclipse远程调试linux的tomcat
- 通过 servletContext 得到 数据源,进而得到connection
- AVAudioSession 使用的注意事项
- 部署到tomcat的项目始终更新不了
- 目前用的log4j.properties
- IDEA教程之导入maven项目
- 【LeetCode】C# 95、Unique Binary Search Trees II