自己写了个微信小程序,买了腾讯云服务器并注册了域名。项目已经部署完毕,一切准备就绪准备发布上线,结果第二天发现数据库所有的表被删了!!!! 仔细想了想,数据库密码好像设置太简单了,有可能是被黑了。 不过有办法找回,只是一些基础数据,问题不大。 喝杯水压压惊! 以下介绍如何找回
一、登录数据库
mysql -uroot -padminroot@@****;
二、查看Binlog日志开启状态
1、输入以下命令查看状态
show variables like '%log_bin%';
ON为开启状态, OFF为关闭状态
2、如果为OFF关闭状态如何开启
##配置binlog日志路径以及日志文件名前缀、生成的日志格式为:bin-log.000001
log-bin=/var/lib/mysql/bin-log
##注意5.7以及更高版本需要配置本项、自定义,保证唯一性
server-id=1
##binlog格式,有3种statement,row,mixed,区别的话,请自行搜索
binlog-format=mixed
##表示每1次执行写入就与硬盘同步,会影响性能,为0时表示,事务提交时mysql不做刷盘操作,由系统决定
sync-binlog=1;
三、查看binlog日志的存放目录
show variables like '%datadir%';
宝塔面板装的话会在/www/server/data/目录下
四、进入/www/server/data/目录下查找binlog日志
我们看到最新日志是mysql-bin.000017
5、切换到安装MySQL的bin目录,利用mysqlbinlog工具输出日志
注:日志中记录了数据库的所有操作,通过输出的日志可以找回数据,需要手动恢复。数据量大的话恢复的时间比较长。
6、利用mysqlbinlog输出日志到指定路径
必须切换到mysqlbinlog目录才有效(具体位置在mysql安装目录**/mysql/bin/下)
mysqlbinlog /www/server/data/mysql-bin.000017 > /www/cc.sql
这时如果报错的话我们就需要从根路径指定
/www/server/mysql/bin/mysqlbinlog /www/server/data/mysql-bin.000017 > /www/cc.sql
这时我们会看到/www目录下会有个cc.sql文件,打开文件就会看到数据库所有操作日志,日志中包含所有增删改查的SQL语句。
7、彩蛋
这是数据被黑之前他们留的一张表,让支付比特币找回数据, 找了一百多万条数据,终于找到被删日志,清空了我数据库所有表、、、气愤!
|