zoukankan      html  css  js  c++  java
  • 记录一次阿里云数据库表数据被删恢复过程

    最近某天打开业余开发的小程序,发现访问不了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 databases里多了一张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;

    参考:

  • 相关阅读:
    几种常用的曲线
    0188. Best Time to Buy and Sell Stock IV (H)
    0074. Search a 2D Matrix (M)
    0189. Rotate Array (E)
    0148. Sort List (M)
    0859. Buddy Strings (E)
    0316. Remove Duplicate Letters (M)
    0452. Minimum Number of Arrows to Burst Balloons (M)
    0449. Serialize and Deserialize BST (M)
    0704. Binary Search (E)
  • 原文地址:https://www.cnblogs.com/cdfive2018/p/14803004.html
Copyright © 2011-2022 走看看