事件背景

22年5月份

服务器的MySQL数据库莫名其妙不见了,日志什么的也没开、好在是个测试服务器,留给我们充足的时间解决数据库丢失的问题。此前测试服务器一直没有正式备份过数据库数据,没有日志,也没找到有用的信息。还好最后是在聊天记录里发现了一份备份过的MySQL文件,当时是拷贝放到本地做测试的。好在是测试数据,就用了这个备份。

解决方式:写了个bat命令,每天备份数据库文件。

具体可见:Windows下自动备份MySQL数据库Windows下自动备份Oracle数据库

梅开二度:12月份

这两次都没注意到多了个z_readme_to_recover库,归根结底还是对数据库不够熟悉,由于有备份,就直接重新导入了备份

解决方式:导入备份

23年2月份

数据库又不见了,这次才发现多了z_readme_to_recover这个恐吓库

具体恐吓信息如下:

1
2
3
All your data is a backed up. You must pay 0.25 BTC to 1K4DdqZ7sWUkhtfRqAGi7VcRck3itcNH17 48 hours for recover it. After 48 hours expiration we will sell all your data on dark markets and the database dump will be dropped from our server!

You can buy bitcoin here, https://localbitcoins.com or https://buy.moonpay.io/ After paying write to us in the mail with your DB IP: rambler+2js3d@onionmail.org and you will receive a link to download your database dump.

这些人,过分。。。

解决方案

前言

我这里由于还有备份数据,所以就没有深究如何找回数据,具体如何找回请百度找寻解决方案;如果有可行的方案,感谢评论区分享一下😊😊😊

方法一

1、删除恐吓库/表

1
2
3
4
5
6
7
8
9
-- 删除数据库
DROP DATABASE 数据库名;

DROP DATABASE IF EXISTS 数据库名;(判断数据库是否存在报警告)

-- 删除数据表
DROP TABLE 表名;

DROP TABLE IF EXISTS 表名;(判断数据表是否存在报警告)

2、删除数据库可疑用户

1
2
3
4
5
6
7
8
9
10
-- 1 drop删除
DROP USER 用户名;
删除的是'用户名'@'%'这个用户
(如需删除 '用户名'@'localhost'这个用户,则命令需要写成drop user 'XXX'@'localhost')

-- 2 delete删除
delete from user where user='用户名' and host='localhost';

drop会将user表中的数据以及其他权限表的内容一起删除;
delete只删除user表中的内容,使用delete命令后需要执行FLUSH PRIVILEGES命令刷新权限,不然再使用create命令创建用户会报错。

3、修改root用户密码

设置密码建议:使用复杂密码包含大小写英文以及数字等,切勿设置root、123456这样简单的密码

1
2
3
4
5
6
7
8
9
10
11
12
13
-- 1
UPDATE mysql.user SET Password=PASSWORD('新密码') WHERE user='root';
FLUSH PRIVILEGES;

-- 2
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');
FLUSH PRIVILEGES;

-- 3
mysqladmin -uroot -p旧密码 password "新密码"

-- 5.7之后新版本MySQL请使用如下命令,否则会报语法错误
alter user 'root'@'%' identified by '123';

4、修改默认端口

MySQL默认端口为3306,大部分人都是直接使用3306这个端口;建议修改一下端口

5、备份数据

最最重要的一点,备份数据库;一定要有备份措施;数据珍贵,切记珍惜!

备份方案可参考文章Windows下自动备份MySQL数据库Windows下自动备份Oracle数据库

方法二

⚠️:仅限于有备份的朋友😂,没备份的朋友还是找找怎么找回数据库,祝好运!

反正已经没有数据了,直接简单一点初始化数据库或直接卸载重装,我是直接卸载重装了

1、初始化MySQL

可参考文章

MySQL完全卸载以及安装8.0版本(Windows11版本一步到位)

MySQL8.0数据库重新初始化

2、修改root密码、更换端口号

第一件事还是重新修改root密码(搞的难一点)、更换端口号

3、远程用户root权限

新安装的MySQL服务不提供给远程控制(Navicat无法直接连接),需要更改root权限的localhost%

1
2
-- 更新命令
update user set host = '%' where user ='root';

4、重新导入数据库

导入备份,测试数据

总结

1、新密码设置很重要

2、开启日志

3、每日备份(有了备份怎么也不怕)

4、防火墙可以搞一下

借鉴链接


MySQL完全卸载以及安装8.0版本(Windows11版本一步到位)

MySQL数据库重新初始化

[MySQL]防止被爬走数据


声明

借鉴部分均注明了原文出处,可在文章的`借鉴链接`处获取原文出处
文中若内容有涉及原版权,请邮件联系elvin-chen@qq.com,涉及的相关文章或内容将会及时更改或取消发布