点击关注公众号,实用技术文章及时了解

来源:blog.csdn.net/qq_34886352/article/

details/112469998

恢复步骤概要

  • 备份frm、ibd文件

  • 如果mysql版本发生变化,安装回原本的mysql版本

  • 创建和原本库名一致新库,字符集都要保持一样

  • 通过frm获取到原先的表结构,通过的得到的表结构创建一个和原先结构一样的空表。

  • 使用“ALTER TABLE DISCARD TABLESPACE;”命令卸载掉表空间

  • 将原先的ibd拷贝到mysql的仓库下

  • 添加用户权限 “chown . .ibd”,如果是操作和mysql的使用权限一致可以跳过

  • 通过“ALTER TABLE IMPORT TABLESPACE;”命令恢复表空间

  • 完成

实际操作

1)备份文件
mkdir /usr/local/backup
cp * /usr/local/backup
2)安装原本版本的数据库

3)创建和原本一致的库

创建和原本库名一致新库,字符集都要保持一样

4)frm获取到原先的表结构

这里使用dbsake读取frm的表结构

(1)dbsake安装

#下载
curl -s get.dbsake.net > dbsake
#添加执行权限
chmod u+x dbsake

(2)使用dbsake读取表结构

#基础使用
./dbsake frmdump [frm-file-path]#将所有读取结果输入到文件中
./dbsake frmdump [frm-file-path] > <文件名>
例如:
./dbsake frmdump student.frm teacher.frm > school.txt

(3)恢复表结构

文件中存放的是frm对应表结构的sql,直接复制出来运行就行了,此时数据库中所有的结构都恢复了,就是还没有数据

5)卸载表空间

在mysql中执行命令,卸载掉表空间

ALTER TABLE <tabelName> DISCARD TABLESPACE;例如:
ALTER TABLE student DISCARD TABLESPACE;
ALTER TABLE teacher DISCARD TABLESPACE;
6)拷贝原本的ibd,到新的库中

(1)确定新数据库的数据存放位置

在mysql中执行命令

show variables like 'datadir';

进入对应文件夹中,会有一个和需要恢复的数据库名完全一样的文件夹,进入文件夹

(2)将ibd文件复制过来

cp命令直接复制过来就行了

7)命令恢复表空间

在mysql执行命令,恢复表空间

ALTER TABLE <tabelName> IMPORT TABLESPACE;例如:
ALTER TABLE student IMPORT TABLESPACE;
ALTER TABLE teacher IMPORT TABLESPACE;
8)完成

如果mysql有什么特别配置,还需要在添加一下,比如:原本的用户账户、原先配置的sql_mode等等

推荐

主流Java进阶技术(学习资料分享)

Java面试题宝典

加入Spring技术开发社区

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!

记一次MySQL数据库恢复(附方案)相关推荐

  1. mysql勒索_记一次mysql数据库被勒索(下)

    背景: nextcloud的mysql数据库被黑,删库勒索.参考:记一次mysql数据库被勒索(上) mysql数据库恢复成功,nextcloud还是无法连接.参考:记一次mysql数据库被勒索(中) ...

  2. 记一次 MySQL 数据库遭比特币病毒处理方法

    记一次 MySQL 数据库遭比特币病毒处理方法 经过 某日上午,发现公司的某个项目的测试服务器上的项目数据库突然消失,当时并没有找到消失,随后开启了MySQL-binlog日志记录数据库的所有操作. ...

  3. mysql 分区表_分享一份生产环境mysql数据库分区表改造方案

    概述 简单分享下最近做的一个mysql数据库分区表改造方案,仅供参考. 思路:(假设在2020.7.21进行表分区改造) 没时间,就不画图说明了 1.创建与原始表一样结构的新表,新分区 2.往新表插入 ...

  4. go mysql slave_【Golang+mysql】记一次mysql数据库迁移(一)

    # [记一次mysql数据库迁移(一)](https://github.com/stayfoo/stayfoo-hub/blob/master/docs/mysql/blog/%E8%AE%B0%E4 ...

  5. 记一次mysql数据库转储sql文件到另外一台电脑运行失败的解决办法

    记一次mysql数据库转储sql文件到另外一台电脑运行失败的解决办法 将转储的sql文件中创建触发器相关的语句剪切复制到另外的一份文本,保存重新运行sql文件,成功后在把之前剪切的语句复制过来在运行一 ...

  6. 从删库到跑路or恢复,记一次MySQL数据库文件损坏恢复经历

    一. 前言 2018年5月28日,北京晴有轻度沙尘暴. 坐上公交车走在上班的路上,想起老罗经常说起的一句话:想成盛田昭夫时代的索尼,想成乔布斯时代的苹果,于是继续研读着 <日本制造:盛田昭夫的日 ...

  7. MySQL数据库Raid存储方案

    作为一名DBA,选择自己的数据存储在什么上面,应该是最基本的事情了.但是很多DBA却容易忽略了这一点,我就是其中一个.之前对raid了解的并不多,本文就记录下学习的raid相关知识. 一.RAID的基 ...

  8. mysql数据库恢复数据_【技术分享】使用Innodb存储引擎的mysql数据库恢复

    作者:维一零 预估稿费:400RMB(不服你也来投稿啊!) 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 前言 某天,在测试一张新数据表的字段时,由于在phpmyadmin不断 ...

  9. 6 种 MySQL 数据库平滑扩容方案剖析

    更多内容关注微信公众号:fullstack888 1. 扩容方案剖析 1.1 扩容问题 在项目初期,我们部署了三个数据库 A.B.C,此时数据库的规模可以满足我们的业务需求.为了将数据做到平均分配,我 ...

最新文章

  1. 100c之37:爱因斯坦问题
  2. leetcode算法题--用两个栈实现队列
  3. Apache Hadoop 2.4.1 单节点安装
  4. 使用LINQ解除SQL注入安全问题
  5. 【topoSort拓扑排序】1424. 奖金(简单题目看拓扑排序)
  6. unzip 分包_建筑总包企业计量分包成本时,未取得相应分包发票,增值税如何处理?...
  7. ASP.NET从字符串中查找字符出现次数的方法
  8. Android系统匿名共享内存(Anonymous Shared Memory)C++调用接口分析(7)
  9. mysql之 xtrabackup原理、备份日志分析、备份信息获取
  10. cefsharp 网页打印不好用_WinFrom 的 WebBrowser 替换为 CefSharp
  11. R-WipeClean(磁盘清理工具)v20.0.2230绿色版
  12. 最好用的php编程软件_PHP语言开发软件哪个好
  13. 关于MFC窗口句柄,窗口ID,窗口指针
  14. RandomAccessFile发生java.io.FileNotFoundException
  15. android 崩溃原因,Android中导致小米系列手机直接崩溃的主要原因。
  16. 苹果手机上网很慢_手机4G信号满格,上网速度却很慢?原来都是它们在“搞鬼”...
  17. 使用GDB和GEF进行调试
  18. SQL Server2008函数大全
  19. debian linux系统安装教程,Debian 10(Buster)安装过程图文详解
  20. 《应届生求职笔试全攻略》学习笔记(四)——招聘笔试题分类详解

热门文章

  1. 嘀嗒与钉钉合作推出职场顺风车 3月已在杭州测试
  2. 首汽约车上线行程录音功能 产生司乘纠纷时可用于调查取证
  3. Git GUI,Git Bash,Git CMD标签之间的区别
  4. 关于浏览器的那些事情1【面试】
  5. 安排计算机网络技术专业去电子厂专业对口吗,计算机网络技术专业好点的学校有哪些?...
  6. go https client
  7. 怎么用计算机算密码,如何使用福特密码计算器来编程路虎揽胜2010年智能钥匙...
  8. win2012iis php,Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程
  9. 译林 五年级上 单词_牛津译林版九年级英语上Unit1单元重点单词、词组和句型总结...
  10. Golang实践录:xorm使用记录