大早上起来,发现微信群刷屏了。爬了一下信息,发现二群里一位网友透露,昨天夜里凌晨 3 点接到电话,公司数据库被删除了。他已搞了一晚上了,事故现场还未恢复!
据这位网友透露,宝塔(简单好用的 Linux/Windows 面板)程序本身有漏洞。导致了他这次被删库!
我只截了这一位网友的部分消息,其他网友的消息太多,看不过来,就不截图了!
今天,我们就来演示一个简单的数据库被删除后如何恢复的教程!实际生产环境中,情况肯定比我这个复杂。比如,有的有备份,有的有 binglog,有的连 MySQL 的 Data 目录都被删除了。今天,我们就先简单的来一个有备份,数据库被删除的恢复操作。其他的复杂情况,我们以后抽时间再来讲。
首先,我们登录到数据库。
[root@CentOS ~]# mysql -u root -p ← 用root登录到MySQL服务器 Enter password: ← 输入MySQL的root用户密码 Welcome to the MySQL monitor. Commands end with ; or /g. Your MySQL connection id is 8 to server version: 4.1.20 Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
然后,创建一个测试数据库 xttblog。
mysql> create database xttblog; ← 建立一个测试用的数据库xttblog Query OK, 1 row affected (0.00 sec) mysql> use xttblog ← 连接到这个数据库 Database changed mysql> create table xttblog(num int, name varchar(50)); ← 在数据库中建立一个表 Query OK, 0 rows affected (0.07 sec) mysql> insert into xttblog values(1,'Hello,CentOS'); ← 插入一个值到这个表(这里以“Hello,CentOS”为例) Query OK, 1 row affected (0.02 sec) mysql> select * from xttblog; ← 查看数据库中的内容 +------+-----------------+ | num | name | +------+-----------------+ |1 | Hello,Centos | ← 确认刚刚插入到表中的值的存在 +------+------------------+ 1 row in set (0.01 sec) mysql> exit ← 退出MySQL服务器 Bye
然后,我们使用 root 身份,对 MySQL 数据库进行备份。
mysqldump -u root -p xttblog xttblog > D:/backup_xttblog_2019-01-30.sql
备份完 xttblog 数据库中的 xttblog 表后,我们执行 drop table 或 drop database 命令,删除数据表或库。
drop table test; ← 删除数据中的表 drop database test; ← 删除测试用数据库test show databases; ← 确认测试用的test数据库已不存在、已被删除
然后,我们来进行备份恢复操作。
mysql -u root -p xttblog xttblog < backup_xttblog_2019-01-30.sql
说一下,我的这个操作,演示非常的简单。实际生产中,可能存在主从、集群等情况。备份,除了 SQL 外,还可能有目录。比如,有的使用的是 mysqlhotcopy 命令备份的等。
再比如,有的开启了 binglog,有的 binglog 配置不是 row,有的存储引擎是 MyISAM,有的是 InnoDB。如果是 InnoDB 的话,表的表空间还不能直接复制。
这篇文章就先介绍到这里,我们年后抽时间继续学习数据库备份与删除。练好技术,从来不翻车!
: » 微信群里网友翻车,数据库被黑客删除!看我教你如何恢复!
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/252397.html