mysql user表被删除_当整个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 进来。

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值