mysql误操作删除数据后数据恢复

关于误操作删除数据和数据恢复,一定要有安全意识,MySQL数据的找回,一定要在配置bin-log,否则数据丢失将无法恢复。

在MySQL的my.ini(或 my.cnf,视操作系统不同而不同)添加:

1
2
[mysqld] 
log-bin=mybinlog # 名字随便取

然后需要重启MySQL服务才能生效,可以通过如下命令查看配置是否成功。

1
show binlog events;

通过mysqlbinlog恢复MySQL数据的两种方法:

1、时间date
通过cmd运行到binlog所在的目录,再录入:

1
mysqlbinlog –stop-date="2011-02-27 12:12:59" mybinlog.000001 | mysql -uroot -proot

(回车)
恢复到2011-02-27 12:12:59之前的数据,如果是start-date,即从该时间点后的开始算起

2、位置position:
先将binlog日志转换成txt:

1
mysqlbinlog –start-date="2011-02-27 13:10:12"stop-date="2011-02-27 13:47:21" mybinlog.000002 > temp/002.txt

功能是将时间段内的日志文件转换成txt,注意binlog和temp文件夹是同一目录下。

查看生成的txt文件,获取编辑位置和时间等数据,然后通过命令:

1
mysqlbinlog –stop-position="98" mybinlog.000002 | mysql -uroot -proot

即可恢复位置为”98”处操作的数据,其中stop也可以换成start。

注意:如果通过drop table name;将表删除,要想恢复数据,必须建立一个表名、字段和数据类型相一致的空表,否则数据无法恢复,报表不存在的错误。


mysql误操作删除数据后数据恢复
https://river106.cn/posts/2b537b16.html
作者
river106
发布于
2018年9月17日
许可协议