过程是RDS上执行delete一直返回错误,检查过sql后觉得应该不是sql语句问题,然后想着去数据库试一试看返回什么错误,然后…………
总之就是不小心删了数据吧,尝试了好多方法,最后终于完全恢复了!特此一记!
1.查看是否开启Binlog,(宝塔是默认开启的,这是非常庆幸的,如果没有开启,不要往下看了,去其他地方看看)
Linux执行命令
find / -name mysqlbinlog -print
在myconf里查看
[mysqld]
server_id = 1
log_bin = /var/log/mysql/mysql-bin.log
max_binlog_size = 1G
binlog_format = row
binlog_row_image = full
2.确定开启并找到binlog文件
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000006 | 613171 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
宝塔面板的位置是/www/server/data文件夹
3.复制最近的binlog文件到任意一个文件夹
不动现有的binlog文件,复制一份出来放到比较好找的地方,然后CD到当前目录
4.执行转换
/www/server/mysql/bin/mysqlbinlog --base64-output=DECODE-ROWS -v -d 数据库名字 binlog文件 > /www/2.txt
这里要带上数据库名字,不然会没数据,生成文件名可随意更换,后缀也可以是2.sql,个人替换txt比较方便下面操作。
5.把文件下载到本地
用sublime 打开本地下载的文件,自带Find All 功能查找所需数据表:比如说我的表明为Jzl_market
^.*jzl_market.*$
要记得点上规则匹配按钮 .*,点Find all ,然后Ctrl+C
最后新建文件为:后悔干的傻逼事.sql,打开文件,Ctrl+V
然后执行sql,恢复结束!