最近真是蛋疼,公司一个客户老是半夜打电话过来,各类问题各类故障,昨天凌晨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文件,再导入数据库恢复吧