首页 > 问答 > 关键词  > MySQL最新资讯  > 正文

MySQL的user表被删除了怎么办 user表被清空解决办法

2020-07-01 11:08 · 稿源:数据库干货铺
文章目录

近期就有人遇到user表内容被清空的情况。如果发生了此情况,千万不要慌,更不能隐瞒问题(今天这位朋友就比较惨,别人删了也没敢告知,结果binlog已经清理了),这样有利于恢复。现在针对几种情况,进行恢复操作的演示。

1. user表内容被清空

如果有权限的同学误执行了情况mysql.user表内容的情况,如果是delete的方式还是相对容易恢复的(binlog存在的情况)

1.1 模拟误删除

/*当前user表的内容*/mysql>selectuser,hostfrommysql.user;+---------------+--------------+|user|host|+---------------+--------------+|repl|192.168.28.%||mysql.session|localhost||mysql.sys|localhost||root|localhost|+---------------+--------------+4rowsinset(0.00sec)
mysql>selectnow();+---------------------+|now()|+---------------------+|2020-04-1606:37:07|+---------------------+1rowinset(0.00sec)

现在执行误删除

mysql>deletefrommysql.user;
QueryOK,4rowsaffected(0.01sec)
mysql>

1.2 恢复

当前情况下,如开启了binlog(生产环境一般都是开启了的),则可以从binlog恢复

注意如果有全部及其之后的binlog 则可以通过恢复备份并追加binlog的方式恢复数据(后续其他文章再专题介绍),本文基于无全备,仅有最近的日志情况下恢复(主要是为了使用binlog2sql工具)

1.2.1 先恢复root账号

因为删除后,其他用户无法重新连接数据库了,需要紧急恢复root账号,再做后续其他账号的恢复,恢复步骤为:

修改为跳过授权的模式,即在配置文件my.cnf文件中添加skip-grant-tables

重启数据库

登录数据库,添加root@'localhost'账号(可以从相同版本数据库中导出一个root账号的sql语句恢复

/usr/local/mysql5.7/bin/mysqldump-uroot-p'123456'-t--socket=/data/mysql3307/tmp/mysql.sockmysqluser--where"1=1anduser='root'andhost='localhost'">1.sql

恢复数据

mysql>usemysql;
Readingtableinformationforcompletionoftableandcolumnnames
Youcanturnoffthisfeaturetogetaquickerstartupwith-ADatabasechanged
mysql>INSERTINTO`user`VALUES('localhost','root','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'mysql_native_password',password('123456'),'N',now(),NULL,'N');
QueryOK,1rowaffected(0.01sec)

改为授权模式: 将配置文件里的skip-grant-tables 注释或删除

再次重启数据库即可用刚恢复的root账号登录了

mysql>selectuser,hostfrommysql.user;+------+-----------+|user|host|+------+-----------+|root|localhost|+------+-----------+1rowinset(0.00sec)

: 如果清空数据或后续说的删除了user表后没有退出当前会话,就无需之前的修改参数及重启数据库了,可以直接先从其他实例中先恢复root账号。

1.2.2安装binlog2sql

binlog2sql依赖python2. 7 及以上版本,且依赖包通过pip安装,对于python的升级及pip的安装可参考历史文章

升级python,就是这么简单

一分钟搞定pip安装

yuminstall-ygitwget
gitclonehttps://github.com/danfengcao/binlog2sql.git&&cdbinlog2sql
pipinstall-rrequirements.txt-ihttps://pypi.tuna.tsinghua.edu.cn/simple

1.2.3 使用binlog2sql工具恢复数据

使用binlog2sql的闪回工具将删除解析处理生成一个insert的sql脚本

pythonbinlog2sql.py--flashback-hlocalhost-uroot-p123456-dmysql-tuser--start-file='mysql-bin.000002'--start-datetime='2020-04-1606:37:07'--stop-datetime='2020-04-1606:40:00'>mysql.sql

将数据导入mysql.user表即可。

注: 其他用法请参考https://github.com/danfengcao/binlog2sql

2. user 表被drop

2.1 模拟user 表被drop

mysql>droptablemysql.user;
QueryOK,0rowsaffected(0.01sec)

2.2 恢复

2.2.1 恢复表结构

表结构的恢复比较简单,可以从其他相同版本的数据库里复制user表的建表语句,然后导入即可

CREATETABLE`user`(
`Host`char(60)COLLATEutf8_binNOTNULLDEFAULT'',
`User`char(32)COLLATEutf8_binNOTNULLDEFAULT'',
`Select_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Insert_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Update_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Delete_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Create_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Drop_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Reload_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Shutdown_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Process_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`File_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Grant_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`References_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Index_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Alter_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Show_db_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Super_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Create_tmp_table_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Lock_tables_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Execute_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Repl_slave_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Repl_client_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Create_view_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Show_view_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Create_routine_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Alter_routine_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Create_user_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Event_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Trigger_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`Create_tablespace_priv`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`ssl_type`enum('','ANY','X509','SPECIFIED')CHARACTERSETutf8NOTNULLDEFAULT'',
`ssl_cipher`blobNOTNULL,
`x509_issuer`blobNOTNULL,
`x509_subject`blobNOTNULL,
`max_questions`int(11)unsignedNOTNULLDEFAULT'0',
`max_updates`int(11)unsignedNOTNULLDEFAULT'0',
`max_connections`int(11)unsignedNOTNULLDEFAULT'0',
`max_user_connections`int(11)unsignedNOTNULLDEFAULT'0',
`plugin`char(64)COLLATEutf8_binNOTNULLDEFAULT'mysql_native_password',
`authentication_string`textCOLLATEutf8_bin,
`password_expired`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
`password_last_changed`timestampNULLDEFAULTNULL,
`password_lifetime`smallint(5)unsignedDEFAULTNULL,
`account_locked`enum('N','Y')CHARACTERSETutf8NOTNULLDEFAULT'N',
PRIMARYKEY(`Host`,`User`)
)ENGINE=MyISAMDEFAULTCHARSET=utf8COLLATE=utf8_binCOMMENT='Usersandglobalprivileges'

2.2.2 恢复数据

drop的方式删除数据后无法直接通过之前的binlog闪回恢复了,需要依赖于全备来恢复,关于备份恢复可以参考以下文章来恢复,此处不再赘述

mysql备份及恢复1

mysql物理备份及还原

3. 小结

对于删除表后的恢复其实不止以上这些方式,另外还可以通过操作系统级别进行恢复,但各种恢复方式均和实际场景有关,希望大家也自行探索或多参与技术交流,提高自己的技能水平。

本文转载自微信公众号【数据库干货铺】。

举报

  • 相关推荐
  • 大家在看
  • SUSE的“棋眼”

    另一件事也激活了 SUSE 的每一个细胞:成为首家支持欧拉开源社区的国外企业,而且率先发布了基于 openEuler 的商业发行版——SUSE Euler Linux...SUSE Euler Linux 的推出,意味着 SUSE 中国首次拿到了产品决策权...“突出底层开发能力”就是 SUSE 的核心竞争力之一,也是 SUSE 中国找到的另一个“棋眼”...SUSE 将成为企业数字化转型的“精算师”,帮助用户榨干花在计算、存储、网络等硬件上的每一分钱,甚至让 600 元的 IT 支出发挥出 1000 元的价值......

  • 英美烟草VUSE重新登顶美国,王炸却来自中国雾化巨头的黑科技

    JUUL的对手VUSE的市场份额,则从2016年的44.2%一路下滑到2018年约10%...据统计,从2019年初至2020年底,Vuse Alto在美国的市场占有率增幅高达978%...2021年,BAT新型烟草收入达20.54亿英镑,同比大幅增加50.9%,VUSE全年在美国市场营收的90%来自VUSE Alto...但市场对其的信心似乎已跌至谷底:JUUL的估值已从2018年最高时的380亿美金跌至如今的16亿美元,仅仅4年间跌了近24倍......

  • 马斯克示Neuralink可以解决病态肥胖问题

    站长之家(ChinaZ.com) 4月25日 消息:在接受TED的克里斯安德森采访时,埃隆马斯克表示,他的脑机接口初创公司Neuralink将在可能十年内解决脑部和脊髓损伤问题。马斯克指出,这家初创公司的技术甚至可以解决病态肥胖等健康问题。专家们现在表示,虽然这个想法似乎牵强,而且科学尚未得到证实,但使用大脑植入物来治疗病态肥胖实际上是一个合理的想法。考虑到Neuralink的技术仍处于开发阶段,人体试验尚未开始,这似乎是不可能的。纽卡斯尔大学神经接口专家Andrew Jackson教授在给 Insider 的一份声明中指出,Neuralink的概念并不比其他关于?

  • OHouse将投资1.82亿美元 为家居装修应用程序引入AR功能

    预计到2028年底的时候,全球规模可达到5149亿美元 —— 远高于2021年的3337亿美元...韩国初创企业 Bucketplace 联合创始人兼首席执行官 Jay Lee 在近日接受采访时称,该公司希望通过最新完成的1.82亿美元 D 轮融资...最后,虽然 Lee 拒绝就公司估值置评,但据知情人士透露,Bucketplace 以约14亿美元的投后估值完成了 D 轮融资(总额约2.61亿美元)...与2020年11月的上一轮融资(7000万美元)后估值相比,几乎翻了一番......

  • SUSE NeuVector 通过网络安全卓越验证中心和泰尔实验室双认证

    近日,中国信息通信研究院发布了“先进网络安全能力验证评估计划第六期——云(原生)安全产品测试”结果,业界首个开源容器安全平台 SUSE NeuVector 通过测试,获得了由中国信息通信研究院、中国泰尔实验室和网络安全卓越验证示范中心联合颁发的云(原生)安全产品检验证书。本次检验基于《网络安全产品能力评价体系容器安全平台评价方法》开展,涵盖了功能、性能、兼容性、易用性、可靠性、安全性、可维护性以及可移植性共计八个维度、数十种技术能力测试指标。严苛的测试表明 NeuVector 走在了云原生安全行业最前端,获得了国家的高度认?

  • SUSE Linux Enterprise Micro 5.2 正式发布 专为容器化和虚拟化工作负载构建

    近日,SUSE Linux Enterprise Micro 5.2 正式发布,这是一款专为容器化和虚拟化工作负载构建的轻量级且安全的操作系统。SUSE Linux Enterprise Micro 5.2 的新特性SUSE Linux Enterprise Micro 5. 2 是一个更加稳定的整合版本,旨在提高可用性和可靠性,其新特性包括:引入自安装镜像,以进一步减少部署时间。自安装镜像是一个可引导的预配置镜像,可以更简便地安装到目标系统上,然后使用与现有预配置镜像相同的配置方法。自安装镜像删除了部署 SLE Micro 的手动步骤,从而优化了部署流程。使用基于 Web管理的附加模块cockpit,增强了基?

  • 研究明盲人在记忆口语信息方面现出色

    据New Atlas报道,长期以来,人们一直认为,当一个人失去一种能力时,另一种能力也会相应提高。一项新研究证明了这一点(至少在一种情况下)--因为它表明盲人比视力正常的人更能记住口语信息。这项研究是由约翰斯·霍普金斯大学和加州大学尔湾分校的科学家进行的。它涉及42名成年测试对象,其中20名是盲人,22名是视力正常但被蒙住眼睛的人。在一项练习中,他们听了一系列说出的字母,然后是一个延迟,然后是另一系列--可能与第一系列相同也可能不相同。他们必须说出这两个列表中哪些字母是不同的(如果有的话)。在另一项练习中,他们试?

  • 天际汽车的代车型 天际ME5综合现不俗

    经我了解,这款天际ME5 目前共有两个车型在售:京选好车天际ME5 1012,市场指导价14. 99 万元;京选好车天际ME5 1012 PRO,市场指导价15. 99 万元...先来看看外观,天际ME5 是天际汽车“先锋重构美学”设计理念的又一杰作,出自前保时捷设计师之手,有着极具吸引力的外观...天际汽车自主研发了iMES智慧增程系统,它由1.5L自然吸气阿特金森循环四缸发动机、高效发电机组成,带来超1012km的NEDC综合续航里程与超高效能,完全解决用户的续航顾虑......

  • 谷歌发布Pixel Watch智能手 颜值爆

    今天凌晨,Google I/O大会正式召开,除了发布Android13以外,还有众多硬件产品...小米11Ultra(12GB/256GB/全网通/5G版)电商报价¥5999¥5999...目前价格还没有公布,Pixel Watch要到今年秋季的发布会上才会正式发布...

  • 华为手支持海洋潜水

    今日早间,华为终端BG 首席运营官何刚爆料称,华为即将发布首款支持自由潜水功能的智能手表华为WATCH GT3 Pro系列...该新表防水性能在 IP68、5 ATM的基础上再次精进,通过200轮加压防水测试循环,实现潜水级防水性能重要突破,符合潜水设备工程标准EN13319的规定,可支持在海洋中最大深度30米的自由潜运动...该产品将在4月28日华为折叠旗舰及全场景新品发布会上发布...

今日大家都在搜的词: