mysql被删除的数据库恢复 binlog恢复数据库

最近真是蛋疼,公司一个客户老是半夜打电话过来,各类问题各类故障,昨天凌晨1点又被吵醒···mysql

服务器上的mysql数据库里几个重要的表被人恶意删除了,我对mysql并不熟悉,但没办法,硬着头皮也要上。sql

各类百度……数据库

由于服务器有前一天备份,客服的众多客户要用,只有先恢复前一天的备份。bash

恢复以前,把mysql的二进制日志文件下载了下来,只有在本地恢复了。服务器

若是你没有打开二进制日志,那就不要想恢复了···至少我是没查到咋办。日志

打开方法:mysql配置文件中找到#log-bin=mysql-bin,并取消注释便可。code

要用到mysqlbinlog,mysqlbinlog在mysql目录bin里,切换目录后执行mysqlbinlog提示server

-bash: mysqlbinlog: command not found百度

找不到命令,那就先解决这个问题,解决方法:配置

find  / -name mysqlbinlog -print

如图:

只有/www/server/mysql/bin/mysqlbinlog 一条记录,这是我mysql的目录

而后把mysqlbinlog作个软链接到/usr/bin

 ln -fs /www/server/mysql/bin/mysqlbinlog /usr/bin

而后再执行find  / -name mysqlbinlog -print查看

你会发现多了一条,报错忽略。如今,就能够正常使用mysqlbinlog了。

个人作法是导出sql文本,在本地恢复,导出方法是:

mysqlbinlog /www/server/linshi/mysql-bin.000087 --start-datetime='2018-01-09 00:00:00' --stop-datetime='2018-01-10 00:00:00' > /www/server/linshi/1233.sql

/www/server/linshi/mysql-bin.000087  是日志文件所在

/www/server/linshi/1233.sql 是要导出的位置

很快执行完毕,切换到相应目录后就会看到1233.sql文件,再导入数据库恢复吧