针对mysql 5.7.20 数据恢复
环境介绍:
mysql 独立存储空间,采用innodb引擎。
恢复分为两部分:数据结构和数据
我们可以拿到的文件只有数据库中的.idb 和.frm 文件,并没有ibdata 以及ib_logfile文件
第一、首先恢复数据结构
搭建相同的数据库环境,新建test数据库,新建一张表,表名和我们要恢复的表的名称一样;例如tbl_user
-- create table songlyric(id int); //新建tbl_user表
-- 随后我们停止mysql服务,将备份出来的frm去覆盖新生成frm文件;同时修改my.ini文件配置innodb_force_recovery = 6;
-- 启动mysql服务,进入相应数据库 desc tbl_user; 会报错如下:ERROR 1146 (42S02):Table 'test.tbl_user' doesn't exsit-- 查看mysql报错日志 会看到错误信息[Warning] InnoDB: Table test/tbl_user contains 1 user defined columns in InnoDB,but 6 columns in Mysql.原因在于 要恢复的表中有6个字段,而我们创建的表只有一个字段。解决方案:停止mysql 服务 注释my.ini 配置文件中的innodb_force_recovery = 6,否则 你直接去删除表的话,会报错 read-only相关错误。删除后我们在重新创建6个字段的新表create table tbl_user(id int,id1 int,id2 int,id3 int,id4 int,id5 int);随之去掉配置文件的注释,重启 为确保万一 重新覆盖frm文件,完成后查看desc tbl_user;
----------desc tbl_user;CREATE TABLE `tbl_user` (`id` int(10) NOT NULL AUTO_INCREMENT COMMENT '自增主键',`user_name` varchar(50) DEFAULT NULL COMMENT '用户账号',`password` varchar(32) DEFAULT NULL COMMENT '用户密码',`pass` varchar(50) DEFAULT NULL COMMENT '密码--非加密',`display_name` varchar(50) DEFAULT NULL COMMENT '显示名称,联系人',`profile_photo` varchar(512) DEFAULT NULL COMMENT '用户头像',PRIMARY KEY (`id`),UNIQUE KEY `user_name` (`user_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表' ROW_FORMAT=COMPACT; //这里本身是没有的 ,后面恢复数据需要加上的
这里数据结构已恢复成功了,我们只需重建新表即可。
第二、恢复数据
恢复表数据需要首先将原先的.ibd文件与原先的.frm文件解除绑定,具体就是在控制台执行下面命令:
alter table tbl_user discard tablespace;
接着执行net stop mysql停掉服务,将需要恢复的tbl_user.ibd文件覆盖这个新建的huifu数据库的tbl_user表的物理文件tbl_user.ibd,
执行net start mysql开启服务。
将复制过来的tbl_user.ibd文件与tbl_user.frm文件发生联系。具体执行下面命令:
alter table tbl_user import tablespace; 这时候通过navicat查看数据表,你会发现数据已经成功恢复啦啦啦。
----------
在数据库下根据之前的建表语句创建表
alter table tbl_user import tablespace;
如果报错11:01:37 ALTER TABLE tbl import TABLESPACE Error Code: 1808. Schema mismatch (Table has ROW_TYPE_DYNAMIC row format, .ibd file has ROW_TYPE_COMPACT row format.) 0.172 sec
则在建表语句后加上 ROW_FORMAT=COMPACT
这就是为什么在数据结构恢复后,建新表的时候加上ROW_FORMAT=COMPACT的原因
至此,数据恢复工作已经完成,感受就是数据库一定要有备份,否则出了问题很麻烦。虽然这次发生的情况是测试环境,但还是一个教训。
后面会尝试写个脚本自动回复,对于表数量小还好说,大的话 就不行了
针对mysql 5.7.20 数据恢复相关推荐
- Mysql价格降低20%应该怎么写_mysql优化20条原则
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...
- Asterisk针对Mysql的extconfig.conf配置
Asterisk针对Mysql的extconfig.conf配置,这其中涉及到的表的structure [setting] sipusers => mysql,general,sip_buddi ...
- mysql 性能优化 20 条建议
MySQL性能优化的最佳20+条经验 2009年11月27日陈皓发表评论阅读评论100,946 人阅读 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库 ...
- python查询mysql数据库_python针对mysql数据库的连接、查询、更新、删除操作示例...
本文实例讲述了python针对mysql数据库的连接.查询.更新.删除操作.分享给大家供大家参考,具体如下: 连接 一 代码 import pymysql # 打开数据库连接 db = pymysql ...
- mysql向表中插中文显示,针对mysql数据库无法在表中插入中文字符的解决方案(彻底解决jav...
针对mysql数据库无法在表中插入中文字符的解决方案(彻底解决jav 针对mysql数据库无法在表中插入中文字符的解决方案(彻底解决:java.sql.SQLException: Incorrect ...
- Mysql价格降低20%应该怎么写_mysql优化建议20条
当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这 ...
- mysql 8.0.20修改不区分大小写
mysql 8.0.20修改不区分大小写 针对linux 已完成安装的mysql 打开mysql配置文件 vim /etc/my.cnf 在尾部追加一行 lower_case_table_names= ...
- Centos6.0 64位MySQL 5.5.20 CMake 安装部署
Centos6.0 64位下 MySQL 5.5.20 CMake 安装部署 一.下载所需软件 linux用 wget 下载需要的软件,保存到目录 /usr/local/src 下 wget ftp: ...
- linux mysql 5.7.20_linux MySQL 5.7.20安装教程
安装MySQL 5.7.20 shell> cd /usr/local shell> groupadd mysql shell> useradd -g mysql mysql she ...
最新文章
- tomcat配置manager
- Git超实用总结,再也不怕记忆力不好了
- Config Sharepoint 2013 Workflow PowerShell Cmdlet
- Vim的一些使用技巧
- Linux 设备驱动开发 —— platform 设备驱动
- 区分关联、依赖和聚集关系
- python julian date_Python 的内嵌time模板翻译及说明
- 杭电 2015 偶数求和
- python3打包成exe运行 无法定位程度输入点_Pyinstaller递归错误解决方案
- 【2019-06-26】改变的开始
- 【包邮免费送】Python 全栈知识图谱
- 黑客雇佣组织开发出新型的Windows 隐秘后门
- 语音识别人工智能解决方案
- 计算机网络(第七版)思维导图
- vnc远程控制linux端口5901,VNC远程控制Linux
- zjnu 1779 KRUŽNICE(线段树成段更新+离散化)
- 移远BC28_opencpu方案_pin脚分配
- OnePlus一加手机:测试
- Quartus II下载器件库(新)
- 综述:重复经颅磁刺激rTMS对静息态功能连接的影响
热门文章
- 7.3国服人口最多的服务器,实时人口普查#71:恶魔猎手数据实装 成人口最多职业...
- laravel 图片上传
- C/C++:Ubuntu20.04报错:无法打开mysql/mysql.h
- 封面你来定,给《新程序员·云原生和全面数字化时代》选封面啦
- 6.29在网上看到的关于魔戒掉入火山后的恶搞
- 设计师2大必备HTML动画工具
- 刀剑封魔录java_刀剑封魔录之剑仙奇侠传
- python语言的编程模式是什么意思_编程语言Python,可以用来干什么
- [如何书写优雅的代码]有意义的命名
- “口袋小食” web 商城项目-栏目简介