在DBA圈子有这样一个段子:程序员
最近几年,常常会出现各类删库跑路的事件发生,前几天还有报道说思科离职5个月的程序员,为了报复公司,删虚拟机跑路了。web
这位思科的离职员工,仅凭一己之力,删掉了思科 456 台虚拟机,致使思科损失 240 万美圆,至关于人民币 1650 万。数据库
对于这些事件,程序员之因此会删库跑路无外乎两个缘由,第一种多是真的手误;那第二种可能就是蓄谋的了。编程
所谓"删库跑路"其实只是一种戏谑的说法,而其中的"删库"具体作法多是删除了服务器上面的文件、清空了数据库里面的内容、删除了数据库表等。服务器
删除不一样的数据,使用的方式也不尽相同。微信
删除服务器文件运维
Linux服务器的文件删除主要是rm命令,rm命令能够删除一个目录中的一个或多个文件或目录,也能够将某个目录及其下属的全部文件及其子目录均删除掉。编辑器
在Linux上,使用rm命令要格外当心。由于一旦删除了一个文件,就没法再恢复它。flex
rm 命令的语法是rm [选项][参数]
spa
因此,在使用rm的时候,必定要高度注意[选项][参数]的正确性。
其中选项比较危险的有:
-f:强制删除文件或目录;
-r或-R:递归处理,将指定目录下的全部文件与子目录一并处理;
这两个是比较危险的,可能会形成非预期的没法挽回的后果。
另外,参数也值得注意,有的人习惯使用rm *
来删除文件,这实际上是很是危险的,由于*
表明全部文件,这就很容误删。
最危险的就是在服务器上执行:rm -rf *
,固然,比这更更更更更危险的是:sudo rm -rf /
删除数据库
除了删除服务器上面的文件外,也有些案例是删除了数据库。
这里的删除数据库包括了数据库以及表的删除。
一、dorp ,drop 属于数据库定义语言DDL,表示删除表, 也能够用来删除数据库,删除表格中的索引。
使用drop删除表的语法是:drop table 表名
删除数据库的语法是:drop database 数据库名
二、truncate, truncate 属于数据库定义语言DDL,表示删除表中全部数据,DDL操做是隐性提交的!不能rollback
使用truncate删除表的语法是:truncate from 表名
特别要注意的是:使用truncate 删除的数据是不能恢复的。
清空表内容
除了对数据库和表结构的操做之外,还有一种破坏的方式就是清空数据库中的内容。
一般使用delte语句,delete 属于数据库操纵语言DML,表示删除表中的数据,
delete删除过程是每次从表中删除一行,并把该行删除操做做为事务记录在日志中保存。
使用delete的时候能够所有删除,也能够按条件删除。
使用delete删除表中所有数据:delete from 表名
使用delete按条件删除 :delete from 表名 where 条件
首先,对于操做者来讲,最重要就是在进行删除操做的时候,必定要加倍当心,仔细检查确认无误后再执行。
对于公司管理者来讲,更好的手段就是作好权限管控,将不应授予的权限所有回收,避免有人误操做或者恶意操做。
还有一点相当重要,那就是及时备份!!!冷备、热备左右开弓!!!
最后,奉劝广大程序员、DBA、运维工程师们,莫要冲动,删库跑路一时爽,入狱坐牢菊花痒。
关于做者:漫话编程,是一个经过漫画+音频的形式讲解枯燥的编程知识的公众号。致力于让编程变得更有乐趣。
推荐阅读:
喜欢我能够给我设为星标哦
本文分享自微信公众号 - 漫话编程(mhcoding)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。