当整个user表被误删之后

本文来自上次那个小菜哥的投稿。他的网站还没上线,就不给链接了。

首先这是个悲伤的故事,但是真的发生了;
很幸运删的不是数据,只是用户,包括root用户,所以还有挽救的机会,不至于跑路;

事情是这样的:
某天发现mysql里root用户通过局域网地址居然可以直接免密码登陆进来;so,查看用户权限;
发现root可以通过这个IP访问进来,当然要干掉了;应该是之前设置权限的时候加错了忘记删了
so,开始干活,delete from mysql.user where user=root and host='xxxooo' 正确的应该是
这样的。然而我也不知道是手抖了,还是脑抽筋了。南方的冬天你懂的,光手敲键盘的感觉;
然后后面的where条件没加上直接就干掉了;然后就愣了十秒;
(博主事后诸葛亮一下:delete前,最好先select一下,看下where出来的结果是不是自己想删除的,
select user,host from mysql.user where user='root' and host='192.168.8.253';)

 

悲剧已经产生,再悲伤也无济于事:
首先这个时候不要急,只要不是删了数据,都不要急;因为你急也没用;问题
都出现了,首先是要解决问题,so,撸起袖子;深吸一口气:

 

首先,我们要让外面能正常访问mysql,你会问,用户都删了,怎么访问呢?

这个时候就相当于你忘记mysql密码一样操作,找到mysql.cnf配置文件;
在[mysqld]下添加skip-grant-tables 然后报错,重启mysql服务,这个时候链接mysql就不需要密码了,你正常的业务也不会
因为没有用户名和密码而链接不上,在这个模式下,所有业务都是正常使用的,这个我测试过,
so,这个时候更不用急了。
下一步,备份数据库,你肯定会问,这个时候还备份什么数据库,用户都被干掉了。
就是因为用户都被干掉了,我们的数据不能再出错,这个时候就需要备份数据库。这里备份数据库有2个操作;
第一步先直接完全复制data目录下的所有文件,这个是硬操作。把这里的东西全部保存到另外一个地方。以防
接下来的操作失误损坏数据;
第二步,使用mysqldump,把数据库里的业务库数据备份出来,因为这个时候是免密码登陆状态,所以直接空密码
把数据导出备份出来;
第三步,这里因为数据库数据没有受影响,所以正常来说,导出来的数据应该是没问题的;我们接下来就是要还原了
第四步,还原数据库,停掉mysql服务,删掉data目录下的所有文件,然后用mysql脚本初始化数据库,重新启动mysql设置root密码
初始化数据库的操作在安装mysql的文档里有讲,这里就不累赘了,重置了之后,使用root把刚刚导出来的数据库导入进去,
重新创建业务账号密码,并设置权限;
第五步,测试业务访问情况,流程都对的话,应该都OK;
第六步,定时备份数据库;
第七步,没有第七步,我就是比较喜欢7这个数而已。

 

回顾整个操作,在还原数据库之前,我还用了网上的插入root用户的方法,但是因为每个办法mysql的字段内容不一样,所以插入不成功,
这个方法是最稳妥也是最安全的方法,如果数据量很大的话,导入导出就有点慢。

最后,我的博客启用了一个很好记的域名, 3322.ee,诸位可以通过 http://3322.ee 进来。

 

原创文章,转载请注明: 转载自笛声

本文链接地址: 当整个user表被误删之后

12 条评论

  • 西枫里博客 2018年2月9日 回复

    看了标题我以为业务中的user表被删了。

  • 懿古今 2018年2月9日 回复

    一般不敢折腾服务器和数据库,就怕出现这种误操作

    • dige 2018年2月10日 回复 作者

      懿平生谨慎,不曾弄险。

  • 姜辰 2018年2月10日 回复

    我还以为最后一步是跑路。= =、

    这个比我rm -rf /*服务器刺激多了。

  • 迎風别葉index 2018年2月10日 回复

    以为删除了业务的数据库的user表

  • 明月清风 2018年2月11日 回复

    看来这个冬天有点爱搞事情啊!

  • 狂放 2018年2月12日 回复

    这个真的得测试一下如果手残删错东西就完了

  • 质量认证 2018年2月28日 回复

    对于手残党一般还是保险为好

  • 夏日博客 2018年3月18日 回复

    做任何操作之前先备份。。

  • 水云间 2018年4月8日 回复

    任何对数据库的操作都还是先备份一下好。

  • 菜鸟博客 2018年4月12日 回复

    备份还是很重要的!

  • 广州网站建设 2018年6月12日 回复

    操作之前备份是准则,不然有得哭

发表评论

电子邮件地址不会被公开。 必填项已用*标注