• 华为云云耀云服务器L实例评测 | 由于自己原因导致MySQL数据库被攻击 【更新中。。。】


    引出


    1.不出意外的话,就出意外了;
    2.硬件有价,数据无价,程序员不删东西;
    3.删东西的程序员不是好。。。;

    起因(si因)

    最近搞了一台华为云服务器玩,建了一个MySQL的docker数据库,密码设置得及其简单,写博客的时候还暴露了自己服务器的ip,结果不出意外就出意外了。

    在这里插入图片描述

    20230911早上数据库还好好的;

    202309002035一看,Navicat连不上了;

    在这里插入图片描述

    报错:

    1130-Host '114.222.228.160’is not allowed to connect to this MySQL server

    解决报错

    搜了一下网上的教程

    在这里插入图片描述

    update user set host = ‘%’ where user = ‘root’;

    在这里插入图片描述

    诶嘿,连上了

    在这里插入图片描述

    不出意外,就出意外了

    程序员bug理论:解决一个bug,会出现另外的bug

    打开数据库

    在这里插入图片描述

    what???

    在这里插入图片描述

    找华为云求助

    在这里插入图片描述
    勒索病毒:
    勒索一般是通过主机或者数据库弱口令等植入病毒,并勒索比特币;
    1、不建议支付赎金,因为大多数赎金支付了也无法获得解密;
    2、若数据很关键,建议寻求第三方专业解密公司做数据恢复;若数据不关键,则建议择机重装系统;
    3、修改所有管理端口的账号和密码,并配置强口令。建议使用 安全组策略 限制访问,并禁止将管理端口和管理后台开放到互联网,仅开放必要的业务端口。
    4、数据恢复完毕后,立即对 ECS 配置定期快照策略,同时做好异地数据备份工作。

    教训:备份

    在这里插入图片描述

    教训:密码

    我之前的密码是:123

    解决

    1.改密码

    update user set authentication_string=‘XXXXX’ where user=‘root’;

    在这里插入图片描述

    然而有出现了新的问题。。。。算了重建一个MySQL吧

    2.新建一个MySQL,密码设置复杂一点

    在这里插入图片描述

    3.开启 binlog备份

    在这里插入图片描述

    MySQL的binlog日志文件

    初识binlog

    MySQL 的二进制日志可以说 MySQL 最重要的日志了,它记录了所有的 DDL 和 DML(除
    了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL 的二进 制日志是事务安全型的。

    一般来说开启二进制日志大概会有 1%的性能损耗。二进制有两个最重要的使用场景:

    • 1.MySQL Replication 在 Master 端开启 Binlog,Master 把它的二进制日志传递给 Slaves
      来达到 Master-Slave 数据一致的目的,这就是主从复制;

    • 2.数据恢复,通过使用 MySQL Binlog 工具来使恢复数据;

    binlog的格式

    MySQL Binlog 的格式有三种,分别是 STATEMENT, MIXED, ROW。在配置文件中可以选择配
    置 binlog_format= statement|mixed|row。

    • statement:语句级,binlog 会记录每次一执行写操作的语句。比如

      update user set create_date=now()

      优点:节省空间。
      缺点:有可能造成数据不一致。

    • row:行级, binlog 会记录每次操作后每行记录的变化。
      优点:保持数据的绝对一致性
      缺点:占用较大空间

    • mixed:statement 的升级版,一定程度上解决了,因为一些情况而造成的 statement
      模式不一致问题,默认还是 statement,一些会产生不一致的情况还是会选择row。

    应用场景

    MySQL的binlog(二进制日志)是MySQL数据库引擎提供的一种日志文件,用于记录数据库的更改操作。它包含了对数据库进行的所有修改操作,例如插入、更新和删除等。

    binlog的主要作用是用于数据恢复、数据备份和数据复制。以下是一些常见的用途:

    • 数据恢复:通过使用binlog,可以将数据库恢复到特定的时间点或特定的事务状态。通过将binlog应用到数据库中,可以重放和还原之前的操作。

    • 数据备份:通过定期备份binlog文件,可以实现增量备份。将完整备份与binlog备份结合使用,可以实现更灵活和高效的数据备份策略。

    • 数据复制:通过读取和解析binlog,可以将数据库的更改操作复制到其他MySQL实例,实现主从复制。这对于实现高可用性、负载均衡和数据分发非常有用。

    补充知识:DDL DML等

    DDL和DML是数据库操作中常用的两种语言,用于定义和操作数据库对象和数据。此外,还有DCL和TCL这两种语言。

    DDL(Data Definition Language):DDL用于定义数据库对象,例如表、视图、索引等。DDL语句包括创建、修改和删除数据库对象的操作。常见的DDL语句有:

    CREATE:用于创建数据库对象,例如创建表、视图等。

    ALTER:用于修改数据库对象的结构,例如修改表结构、添加列等。

    DROP:用于删除数据库对象,例如删除表、视图等。

    DML(Data Manipulation Language):DML用于操作数据库中的数据,例如插入、更新和删除数据。DML语句不会改变数据库对象的结构,只是对数据进行操作。常见的DML语句有:

    INSERT:用于插入数据到表中。

    UPDATE:用于更新表中的数据。

    DELETE:用于删除表中的数据。

    SELECT:用于查询表中的数据。

    DCL(Data Control Language):DCL用于控制数据库的访问权限和安全性。DCL语句用于授权和撤销用户对数据库对象的访问权限。常见的DCL语句有:

    GRANT:用于授予用户对数据库对象的访问权限。

    REVOKE:用于撤销用户对数据库对象的访问权限。

    TCL(Transaction Control Language):TCL用于控制数据库事务的提交和回滚。TCL语句用于管理数据库事务的一致性和持久性。常见的TCL语句有:

    COMMIT:用于提交事务,将事务中的操作永久保存到数据库中。

    ROLLBACK:用于回滚事务,撤销事务中的操作。

    SAVEPOINT:用于设置保存点,可以在事务中进行部分回滚。

    这些语言一起构成了SQL(Structured Query Language)的核心部分,用于定义和操作关系型数据库中的结构和数据。不同的数据库管理系统可能会有一些差异,但基本的DDL、DML、DCL和TCL语句在大多数关系型数据库中都是通用的。

    DML

    对数据库表中的记录进行改变的sql语句

    添加

    insert into emp(empNum,gender,age,sal,job,dept,score,name) values('N005','男',20,15000,'护士','妇产科',90,'小七')
    
    • 1

    删除

    delete from emp where id=15;
    
    • 1

    修改

    update emp set gender='女' where id=14
    
    • 1

    DQL

    对数据库表中的记录进行查询的sql语句

    查询

    select * from emp where id=14
    
    • 1

    总结

    1.不出意外的话,就出意外了;
    2.硬件有价,数据无价,程序员不删东西;

  • 相关阅读:
    Java追加式将内容写入yml文件
    Hibernate/JPA 中的id概述
    Javascript知识【定时器知识&src属性】
    碎碎念日常——一个反思日记
    计算机视觉(CV)技术
    .NET6使用MiniExcel根据数据源横向导出头部标题及数据
    kafka安装配置
    MySQL数据存在更新不存在新增数据
    利用clamp()超快速实现响应式布局
    乘风破浪,遇见未来元宇宙(Metaverse)之元宇宙重要基本元素之一,虚拟数字人行业洞察报告及未来趋势
  • 原文地址:https://blog.csdn.net/Pireley/article/details/132818521