最近在做自己的网站,准备自己搞点好玩的东西,在自己服务器上搭建了mysql数据库。

昨天下班回去准备撸代码的时候,发现数据库连不上了, 用navicat也打不开,什么情况!难道数据库挂了? 赶紧去服务器

检查了一下数据库状态,没问题啊,在运行呢! 奇怪了。

登录看一下,哦吼,进不去,mysql -uroot -p 死活进不去,这是神马情况!!没得办法了,只能后台操作了。

先停掉数据库

service mysql stop

编辑mysql 配置文件

vi /etc/my.cnf

在配置文件中加入 这一行,表示可以跳过权限登录。

skip-grant-tables  

service mysql start 启动数据库。啪! 起不来,我他妈直接裂开。

最后求助了一下百度,发现是mysql 文件权限不够,导致起不来,这都是什么情况!

最后给mysql整个文件夹赋予所有权限,在启动,终于起来了!

进去看看

mysql -u root -p

提示输入密码,直接回车,跳过。

先修改一下root密码

update user set password=password("你的新密码") where user="root";

flush privileges;

把密码改回原来的,最后把配置文件里面的配置删了,在重启。

最后用navicat 连一下, 成功!

打开数据库一看

 表呢!!!!!!!!!!!!!!!!!!!!!

以下数据库已被删除:wind-user-dev, wind-user-release。 我们有完整的备份。 要恢复它,您必须向我们的比特币地址bc1qv7v4vynjhm8vvxcl903mhrxwj85ffrhsntfg8k支付0.0093比特币(BTC)。 如果您需要证明,请通过以下电子邮件与我们联系。 fang33@tutanota.com 。 任何与付款无关的邮件都将被忽略!

这是什么玩意! 看来是被黑了,想骗我钱,那不可能。还好我自己数据库里面数据不多。才刚开始,这里也提醒广大网友,网络需谨慎。

想要恢复,第一时间想到的就是用binlog 来恢复,如果是公司的数据库,数据量比较大的,需要定时做好备份,开启binlog 功能,通过备份+binlog增量文件来恢复数据。

进入mysql 

mysql -u root -p

查看binlog 日志记录功能是否开启

show variables like '%log_bin%';

这里看到说明我这个是开启了binlog的

 查看binLog 日志文件

show master logs;

我这里显有日志文件

如果日志文件没有配置的话,默认会在mysql 安装目录下data文件夹里面

先去mysql 目录的bin文件夹下,执行

// 用 mysqlbinlog 去解析binlog.000001 binlog 日志文件
./mysqlbinlog ../data/binlog.000001 

 这里每个节点的操作,时间段,干了什么事情,都记录的很详细,可以通过这个什么节点到什么节点,把执行sql导出成sql语句,在通过备份+这个sql语句就可以进行恢复了。

Logo

更多推荐