首先感谢自己的手欠,把线上真实的数据库被删,真的是手贱点到了,浪费了一天的时间
自己记录一下,也方便自己的以后再次删库,这次以宝塔为例,因为我是在宝塔误删的,其他的我觉得大同小异
废话不多说,直接进入主题
1、直接进入数据库
mysql -uroot -p
Enter password:
然后执行
mysql> show variables like’log_bin%’;
你会看到 这样的界面
2、找到数据库data文件夹,默认在数据库安装的目录下,宝塔的是默认 www/server/data/,进入到data文件夹下
执行
ll
就会看到这样的界面
根据时间,找到想要恢复的片
然后这个就需要你的推理能里,或者英文能力了,我的是下7月17 下午13:12分删除了,在这个可以看到删除的时间
我根据大小和时间判断 我的是 mysql-bin.000005
然后最好备份一下这个文件
cp www/server/data/mysql-bin.000005 /home/
查看是否备份成功
发现有了就行了,然后就是最重要的步骤了
然后执行
mysqlbinlog --base64-output=DECODE-ROWS -v -d crmeb mysql-bin.000005 > data.sql
在此,可能有一个问题,就是mysqlbinlog 命令找不到,其实可以用软连接的形式
find / -name mysqlbinlog -print
ln -fs /www/server/mysql/bin/mysqlbinlog /usr/bin
执行上面两步,就可以使用这个命令了。
然后,将生成的data.sql进行还原就可以了
mysql -uroot -p -f 数据库名 < data.sql ( 在这之前 最好先创建一下数据库 )