最近真是蛋疼,公司一个客户总是半夜打电话过来,各种问题各种故障,昨天凌晨1点又被吵醒···
服务器上的mysql数据库里重要的表被人恶意删除了,很蛋疼,我对mysql并不熟悉,但没办法,硬着头皮也要上。
一通百度后,因为服务器有前一天备份,客服的众多客户要用,只有先恢复前一天的备份。
恢复之前,把mysql的二进制日志文件下载了下来,只有在本地恢复了。
如果你没有打开二进制日志,那就不要想恢复了···至少我是想不到咋办。
打开方法:mysql配置文件中找到#log-bin=mysql-bin,并取消注释即可。
要用到mysqlbinlog,mysqlbinlog在mysql目录bin里,切换目录后执行mysqlbinlog提示
-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文件,再导入数据库恢复吧