mysql数据库不小心还原了需要按照以下步骤恢复。
1、先确认MYSQL有没有启用bin日志 ,就是看下mysql.ini(my.cnf)里的log-bin=mysql-bin, 可以 自定义一个目录和前缀名,比如/data/log/mylog这样。
2、然后在数据库文件存放的data目录就能看到mysql-bin.00000x这样的文件,这就是二进制日志了,可以导出成txt格式的,里面其实就是对数据库的各种 *** 作SQL语句。
3、导出txt文件:
E:\wamp\bin\mysql\mysql5.6.12\bin>mysqlbinlog --database=testdatabase E:\wamp\bin\mysql\mysql5.6.12\data\mysql-bin.000312 >C:\\test1.txt
这是WINDOWS下的导出,linux也是类似的。
database=数据库名
从最早的日志还始还原
linux下可以很方便的 mysql-bin.000*
可以加参数开始时间和结束时间,就是你执行那条SQL语句的时间
start-datetime="2014-12-04 11:25:56" --stop-datetime="2014-12-04 13:23:50"
4、恢复数据:
E:\wamp\bin\mysql\mysql5.6.12\bin>mysqlbinlog --database=yundongchao E:\wamp\bin\mysql\mysql5.6.12\data\mysql-bin.000179 | mysql -u root -p
------------------------------------------------
1、首先构建测试环境数据create table t1(a varchar(10),b varchar(10))insert into t1 values('1','1')insert into t1 values('2','2')commit。
2、模拟误修改,将t1表中的b字段更新为错误数据 "123456"update t1 set b='123456' where a='1'commitselect * from t1。
3、将恢复工具上传到服务器并进行解压。unzip binlog2sql-master.zip。
4、得到误修改时的binlog文件(show binary logs),实验环境是mysql-bin.000011。
5、通过 binlog2sql.py 脚本的到所有 对表 t1 的修改 *** 作。python binlog2sql.py -hlocalhost -P23307 -ubinlog2sql -p'binlog2sql' -dtest -tt1 --start-file='mysql-bin.000011'。
6、得到了误删除的sql的准确位置在1382-1615之间,使用 _**-B**_ 选项生成回滚sql。python binlog2sql.py -hlocalhost -P23307 -ubinlog2sql -p'binlog2sql' -dtest -tt1 --start-file='mysql-bin.000011' --start-position=1382 --stop-position=1615 -B。
7、执行得到的回滚语句进行误 *** 作恢复。就完成了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)