记一次MySQL数据库恢复(附方案)
点击关注公众号,实用技术文章及时了解
来源: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数据库恢复(附方案)相关推荐
- mysql勒索_记一次mysql数据库被勒索(下)
背景: nextcloud的mysql数据库被黑,删库勒索.参考:记一次mysql数据库被勒索(上) mysql数据库恢复成功,nextcloud还是无法连接.参考:记一次mysql数据库被勒索(中) ...
- 记一次 MySQL 数据库遭比特币病毒处理方法
记一次 MySQL 数据库遭比特币病毒处理方法 经过 某日上午,发现公司的某个项目的测试服务器上的项目数据库突然消失,当时并没有找到消失,随后开启了MySQL-binlog日志记录数据库的所有操作. ...
- mysql 分区表_分享一份生产环境mysql数据库分区表改造方案
概述 简单分享下最近做的一个mysql数据库分区表改造方案,仅供参考. 思路:(假设在2020.7.21进行表分区改造) 没时间,就不画图说明了 1.创建与原始表一样结构的新表,新分区 2.往新表插入 ...
- go mysql slave_【Golang+mysql】记一次mysql数据库迁移(一)
# [记一次mysql数据库迁移(一)](https://github.com/stayfoo/stayfoo-hub/blob/master/docs/mysql/blog/%E8%AE%B0%E4 ...
- 记一次mysql数据库转储sql文件到另外一台电脑运行失败的解决办法
记一次mysql数据库转储sql文件到另外一台电脑运行失败的解决办法 将转储的sql文件中创建触发器相关的语句剪切复制到另外的一份文本,保存重新运行sql文件,成功后在把之前剪切的语句复制过来在运行一 ...
- 从删库到跑路or恢复,记一次MySQL数据库文件损坏恢复经历
一. 前言 2018年5月28日,北京晴有轻度沙尘暴. 坐上公交车走在上班的路上,想起老罗经常说起的一句话:想成盛田昭夫时代的索尼,想成乔布斯时代的苹果,于是继续研读着 <日本制造:盛田昭夫的日 ...
- MySQL数据库Raid存储方案
作为一名DBA,选择自己的数据存储在什么上面,应该是最基本的事情了.但是很多DBA却容易忽略了这一点,我就是其中一个.之前对raid了解的并不多,本文就记录下学习的raid相关知识. 一.RAID的基 ...
- mysql数据库恢复数据_【技术分享】使用Innodb存储引擎的mysql数据库恢复
作者:维一零 预估稿费:400RMB(不服你也来投稿啊!) 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 前言 某天,在测试一张新数据表的字段时,由于在phpmyadmin不断 ...
- 6 种 MySQL 数据库平滑扩容方案剖析
更多内容关注微信公众号:fullstack888 1. 扩容方案剖析 1.1 扩容问题 在项目初期,我们部署了三个数据库 A.B.C,此时数据库的规模可以满足我们的业务需求.为了将数据做到平均分配,我 ...
最新文章
- 100c之37:爱因斯坦问题
- leetcode算法题--用两个栈实现队列
- Apache Hadoop 2.4.1 单节点安装
- 使用LINQ解除SQL注入安全问题
- 【topoSort拓扑排序】1424. 奖金(简单题目看拓扑排序)
- unzip 分包_建筑总包企业计量分包成本时,未取得相应分包发票,增值税如何处理?...
- ASP.NET从字符串中查找字符出现次数的方法
- Android系统匿名共享内存(Anonymous Shared Memory)C++调用接口分析(7)
- mysql之 xtrabackup原理、备份日志分析、备份信息获取
- cefsharp 网页打印不好用_WinFrom 的 WebBrowser 替换为 CefSharp
- R-WipeClean(磁盘清理工具)v20.0.2230绿色版
- 最好用的php编程软件_PHP语言开发软件哪个好
- 关于MFC窗口句柄,窗口ID,窗口指针
- RandomAccessFile发生java.io.FileNotFoundException
- android 崩溃原因,Android中导致小米系列手机直接崩溃的主要原因。
- 苹果手机上网很慢_手机4G信号满格,上网速度却很慢?原来都是它们在“搞鬼”...
- 使用GDB和GEF进行调试
- SQL Server2008函数大全
- debian linux系统安装教程,Debian 10(Buster)安装过程图文详解
- 《应届生求职笔试全攻略》学习笔记(四)——招聘笔试题分类详解
热门文章
- 嘀嗒与钉钉合作推出职场顺风车 3月已在杭州测试
- 首汽约车上线行程录音功能 产生司乘纠纷时可用于调查取证
- Git GUI,Git Bash,Git CMD标签之间的区别
- 关于浏览器的那些事情1【面试】
- 安排计算机网络技术专业去电子厂专业对口吗,计算机网络技术专业好点的学校有哪些?...
- go https client
- 怎么用计算机算密码,如何使用福特密码计算器来编程路虎揽胜2010年智能钥匙...
- win2012iis php,Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程
- 译林 五年级上 单词_牛津译林版九年级英语上Unit1单元重点单词、词组和句型总结...
- Golang实践录:xorm使用记录