前两天在操作项目的时候,有一条SQL没太注意,少写了where语句,导致整个表被更新成一样的数据。当时感到绝望,幸亏是在校内练手的小项目,3百多条数据。但还是给我上了一课。所以特此记录找回的方法。
我在网上看了主要是两种方式:
2. 通过一个工具 binlog2sql,定位误操作的日志位置,然后进行逆向sql解析,还原出误操作中的数据sql文件,然后执行即可。参考博客:https://blog.csdn.net/letterss/article/details/93736959(在此特别感谢这位博主的创作)
我在这里用的是第二种,并且用自己的服务器和上面的数据库还原出了原来的数据sql文件,然后在navicat里执行sql文件,恢复成功。再次提醒广大网友:备份!!!备份!!!备份!!!怎么强调都不为过!
OK 开始操作
在操作之前,我要求你把数据库备份一份,别这个没搞成,最后还把别的搞坏了!
详细步骤如下:
1. 查看数据库是否开启了binlog且为ROW格式 (必须开启了才行)
1)mysql> show variables like 'log_bin'; 也可以写成 show variables like '%log_bin%';这是模糊查询的意思
Values值为ON即为开启,这个一般是mysql数据库会自动开启的