记录一次阿里云数据库表数据被删恢复过程
最近某天打开业余开发的小程序,发现访问不了js报错,ssh登录服务器,发现上面各微服务正常,MQ、ES也正常,在某服务日志里看到了MySQL数据库连接
报错。服务器用的阿里云ECS,CPU2核、内存8G,在上面安装了MySQL,通过IDEA里连接时提示[28000][1045] Access denied for user root@x.x.x.x
之前一直是能连上的,并且几个月前对程序进行一些优化和完善,开发过程中编写过sql执行都是没问题的。
在服务器上直接用命令mysql -uroot -pxxx
发现数据库能连。
show databases;
use cdfive2019;
show tables;
select * from cdfive_song
;
发现表里没数据了,查了其它几张表,数据都是空的。
该数据库和小程序主要是业余学习使用,上面有一些学习的demo演示和博客分享,数据量不大,除了日志表,最大只有几百条记录。
程序在github上开源,数据库用户名/密码配置在了yml里,在阿里云控制台也打开了3306端口,方便平常用客户端连接使用。
在业余有时间的时候,对功能和代码逐步进行建设和优化,已运行几年都没问题。
有点惊讶,在想是不是有其他人连了这个库,把数据表被清空了。
疑惑间突然看到show tables
里多了一张README表,
select * from README;
结果如下:
以下数据库已被删除:cdfive2019, cdfive_mp3。 我们有一个完整的备份。 要恢复它,您必须将0.006比特币(BTC)支付给我们的比特币地址xxxxxx。
有关说明,请通过xxx@xxx.com通过电子邮件联系我们。 任何与付款无关的邮件都将被忽略!
原来是被黑客攻击了,提示要付款才能找回被删除的数据。
在公司里几乎天天听到同事讨论炒币、股票等各种新闻和实战,没想到这里也是要求以比特并付款。
听说一个比特币价格很高,0.006个估计也不少。
感觉这黑客不太厚道,一个学习类分享技术、demo的小网站,也给数据删了。
并且找错了人,自己不懂币,也没有币或股票账户,没有能力支付。
幸运的是,之前有对云上的数据库定期进行备份,找到备份的数据恢复即可。
查看用户:
select host,user,authentication_string from mysql.user;
发现多了一个mysqld不限ip的用户,将它删除。
删除用户:
drop user mysqld@'%';
查看授权:
show grants;
对固定ip授权:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'x.x.x.x' IDENTIFIED BY 'xxx';
不使用%对所有ip授权,仅对固定ip授权,减少可能的恶意访问。
刷新授权:
flush privileges
;
参考:
- 设置MySQL数据库的远程连接权限 https://help.aliyun.com/knowledge_detail/40792.html
- 阿里云中Mysql修改root密码并设置远程访问 https://blog.csdn.net/zhoukun915684080/article/details/105162435/
- MySQL授权与用户权限查询 https://www.jianshu.com/p/0654d4c02194
- MySQL授权查询_MySQL授权以及状态查询 https://blog.csdn.net/weixin_28518991/article/details/113170683
- Mysql创建用户后,执行grant授权命令,提示can't find any matching row in the user table https://blog.csdn.net/lambert310/article/details/53377301/
- ERROR 1133 (42000): Can't find any matching row in the user table https://www.cnblogs.com/Charles-Yuan/p/9618606.html
- 解决Error(1133): Can’t find any matching row in the user http://www.002t.cn/yingxiaoyuwangluo/834.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本