首页 > 问答 > 关键词  > 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. 小结

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

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

举报

  • 相关推荐
  • 大家在看
  • PDF Flex | AI Chat with PDF:转换PDF文件,即时聊天与PDF并获取深度答案

    PDF Flex是一款能够帮助用户转换PDF文件格式并与PDF进行即时聊天的工具。它可以将PDF文件转换成多种格式,并且可以向PDF提问问题并立即获得详细回答,提高研究效率。PDF Flex还提供了丰富的功能和使用场景,适用于个人和企业用户。定价方案包括免费和付费版本,用户可以根据自己的需求选择合适的版本。

  • Pen2txt:手写识别AI助手

    Pen2txt是一款利用OCR和人工智能进行手写文本识别的产品。它可以将手写笔记转换为可编辑、可搜索的数字文本,适用于学生、专业人士以及任何需要将纸质文件转换为数字形式的人群。Pen2txt凭借准确、可搜索和可编辑的结果,提高了工作效率。

  • SheetMagic:在Google Sheets中使用AI和无限网络爬虫

    SheetMagic是一个在Google Sheets中使用AI和无限网络爬虫的插件。它能够生成AI内容和AI图片,实现无限的AI提示,并且能够从网站和搜索引擎结果页面获取实时数据。除此之外,它还可以进行数据分析、数据准备和其他多种功能,全部在Google Sheets内完成。

  • Nurmonic: 你的全能 Discord 机器人

    Nurmonic 是一款功能全面的 Discord 机器人,提供聊天互动、图片视频生成、支持票务等多项功能。适用于各类 Discord 社群,为用户带来便利和娱乐。价格根据不同版本和功能选项而定。

  • KaraboAI:为您的业务创建自定义的AI聊天机器人

    KaraboAI Custom ChatGPT Chatbots是一个用于网站的自定义AI聊天机器人平台。您可以在2分钟内创建定制的AI聊天机器人,并嵌入到您的网站中。该聊天机器人可以根据您的业务需求执行各种复杂任务,如知识检索、商务咨询、数据收集、预约日历、电子商务、报价生成和预订管理等。它提供方便的上游数据集成和下游聊天机器人部署集成,支持多种功能和定价选项。

  • Studia AI:使用AI创建您自己的课程

    Studia AI是一个使用人工智能生成学习步骤的平台。它可以帮助用户创建自己的课程,包括功能丰富的学习步骤生成、个性化定制、智能推荐等。定价根据不同的套餐和功能进行收费。

  • Filmora:易於使用的影片編輯軟體

    Wondershare Filmora是一款簡單易用的影片編輯器,可讓您在Windows和Mac上編輯影片和音訊。Filmora提供了豐富的功能和創意視覺效果,讓您可以創建令人驚嘆的影片。它定位於個人和小型企業用戶,並有多個定價方案供選擇。

  • Dreamora: AI解梦

    Dreamora是一款基于人工智能技术构建的解梦应用,提供准确全面的梦境解释。它包含了从伊本·西里恩(Ibn Sirin)和阿尔·纳布尔西(Al-Nabulsi)等主要解梦师那里得出的所有梦境解释,还有最新的信息和持续更新。只需将您的梦境输入应用程序,人工智能将在几秒钟内提供准确的解释。最重要的是,使用这个应用程序完全免费。

  • Suinfy:AI-powered YouTube视频摘要器

    Suinfy是一个AI-powered YouTube视频摘要器,提取长视频中的关键思想和见解。节省您的时间,提高您的生产力。

  • Amplifiles:转化PDF为动态体验

    Amplifiles可以将PDF转化为动态体验,为销售和营销专业人员提供AI语音解说、自定义CTA、CRM集成等功能,提升销售效果。详细定价和功能列表请访问官网了解。

  • ImageAI.QA:100%免费AI图片描述生成器

    AI图片描述生成器是一个能够使用人工智能自动生成图片描述的工具。它可以帮助艺术家、设计师等创作者揭示他们作品背后的隐藏细节、情感和含义。该工具提供全新的视角,让人们可以更深入地理解和欣赏艺术作品。AI图片描述生成器是一个早期测试版本,部分功能可能还不稳定。如果您在使用过程中遇到任何问题或有任何建议,请随时与我们联系。您的反馈对我们非常重要,将帮助我们改进该工具。

  • SpeedProof:快速修改、检查语法、翻译、解释、总结

    SpeedProof: One-Click AI Text Edit是一个一键式的AI文本编辑插件,可以快速修改、检查语法、翻译、解释和总结所选文本。只需选中文本,点击SpeedProof插件图标,选择所需操作即可使用ChatGPT进行修改。支持检查语法、总结、翻译、重新表达等功能,可在任何语气下进行操作。

  • AI Detector:检测AI生成的内容

    AI Detector是一个在线工具,使用先进的算法和机器学习来检测文本是否由AI生成。它可以分析写作风格和句子结构,判断内容是否由ChatGPT、GPT 4、Bard、Claude或人类创作。您可以免费使用AI Detector,每次最多检测1000个字,并获得95%的准确率。

  • WitChat:AI支持的最佳客户服务系统

    WitChat是一款具有AI集成的客户服务系统。我们的软件通过文本、手机、电话、电子邮件、聊天和社交媒体等多种渠道增强客户互动体验。

  • editoReview.com:基于AI的论文和应用界面的同行评审

    editoReview是一个为学术编辑和营销代理提供咨询服务的平台,旨在评估研究文章或服务插件API在AI界面上的可搜索性和可用性。用户可以通过AI聊天记录或模板文档开始新的评审,引用参考文献或应用程序以与作者或开发者安排会议,支付咨询费用,并发布可共享的评审记录。editoReview通过智能搜索和智能使用的方式帮助编辑和营销人员明确论文或服务插件在界面上的可行性,并在arXiv文献和Zapier市场的其他论文和应用上进行了整合。

  • Draph Art:AI生成的背景去除和高质量产品图片

    Draph Art是一款能够自动生成背景去除、道具、光照、阴影和模特等所有元素的AI产品。无需专业技术,任何人都可以制作出吸引人的产品图片。通过Draph Art,您可以使用相关的产品照片来吸引顾客的注意力。从一张原始照片到多种主题的产品照片,只需告诉我们您想要的主题,AI将分析上传照片的背景氛围和颜色,然后为所选择的主题生成多张照片。

  • 百度文库-智能漫画·智能画本:一站式智能漫画创作工具,从创意到作品一键实现

    百度文库推出的智能漫画创作工具,具有以下优势:1.一站式创作流程,从创意到成品无缝衔接。2.多种漫画风格可选,如韩系卡通、浪漫厚涂等。3.人物形象、表情、场景等描绘精细生动,媲美漫画家水准。4.内置智能编辑器,可对细节进行精修。5.无需专业绘画技能,有创意即可创作。6.目前处于公测阶段,可关注公众号预约体验。

  • 星辰语义大模型-TeleChat:星辰语义大模型,智能对话助手

    TeleChat是由中电信人工智能科技有限公司研发的星辰语义大模型,具备强大的对话生成能力,支持多轮对话,适用于多种场景的智能问答和内容生成。模型经过大量高质量中英文语料训练,具备优秀的通用问答、知识类、代码类、数学类问答能力。

  • Live2D Virtual Human for Chatting based on Unity:基于Unity的Live2D虚拟人实时聊天系统

    AI女友是一款基于Unity开发的Live2D虚拟人实时聊天系统,它利用Live2D技术提供动态的虚拟人形象,结合Unity的实时渲染功能,实现与用户的动态交互和聊天。主要功能包括Live2D虚拟人形象集成、实时聊天、图像处理和人脸检测,支持高清分辨率显示,并且可自定义和扩展。

  • School AI:个性化AI学习助手,提升学习效率

    School AI是一个专为K12学生设计的AI平台,提供个性化学习体验和即时反馈,支持多语言环境,帮助学生以母语进行互动,增强教育的普遍性和包容性。平台对教师免费开放,内置监控和控制工具,帮助教育工作者设计更好、更个性化的课堂体验。

今日大家都在搜的词: