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

 

关于误操作删除数据和数据恢复,一定要有安全意识,MySQL数据的找回,一定要在配置bin-log,否则数据丢失将无法恢复: 
在MySQL的my.ini(或my.cnf,视操作系统不同而不同)添加: 

[mysqld] 
log-bin=binlog(名字随便取) 


然后需要重启MySQL服务才能生效 ,
可以通过命令“show binlog events;”查看配置是否成功 。


通过mysqlbinlog恢复MySQL数据的两种方法: 
(1)时间date 
通过cmd运行到binlog所在的目录,再录入: 

mysqlbinlog –stop-date=”2011-02-27 12:12:59″ jbms_binlog.000001 | mysql -uroot -proot

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


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

mysqlbinlog –start-date=”2011-02-27 13:10:12″ –stop-date=”2011-02-27 13:47:21″ jbms_binlog.000002 > temp/002.txt 

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


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

mysqlbinlog –stop-position=”98″ jbms_binlog.000002 | mysql -uroot -proot 


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


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

 

 

你可能感兴趣的:(MySQL)