MySQL 数据恢复

摘要:
首先,修复修复过程中产生的问题:1。通过可变快递包裹可丢弃空间;取消绑定表结构文件expresspackage.frm和表数据文件expresspackage.ibd将直接删除数据文件夹下的expresspackge.ibd文件。此时,数据库重新启动将始终失败,因此在此期间无法重新启动,除非重新启动以保持短连接以进行操作

首先针对修复过程中产生的问题进行再修复:

1、通过 alter table expresspackage discard tablespace; 解除表结构文件 expresspackage.frm 和表数据文件 expresspackage.ibd 的绑定,会直接删除 data 文件夹下的 expresspackage.ibd 文件,这时候数据库重启数据库会一直失败,所以在此期间不能重启,除非一直重启保持短暂连接进行操作,解决方法:

      1,1、再删除表结构文件,可以彻底删除这个表,就可以避免重启失败:drop table expresspackage;

  Tips:数据库文件损坏,很可能是某一张表有问题,一般就是操作表,可以先尝试备份删除这张表,看看MySQL是否能正常启动

      1.2、再关联一个表数据文件,可以完善表文件,就可以避免重启失败:alter table expresspackage import tablespace;

      1.3、Tips:如果复制进来的表数据文件在data文件夹下,但是没有关联成功,也会产生这个问题,需要先手动删除表数据文件

通过 ibd 文件进行数据恢复教程:

1、通过 alter table expresspackage discard tablespace; 解除表结构文件 expresspackage.frm 和表数据文件 expresspackage.ibd 的绑定

2、将需要恢复的 expresspackage.ibd 文件拷贝到 data 文件夹下

3、通过 alter table expresspackage import tablespace; 关联表结构文件

4、

4、完成,可通过 navicat 查看数据了

二、整个数据库恢复(需要数据库结构一致,否则可能丢失现有数据)

参考文档:https://www.cnblogs.com/sky-cheng/p/12214208.html

以新建数据库接收恢复数据为例

1、新建数据库服务MySQL2,此时是空数据库,执行初始化,然后停止服务

2、将损坏数据库的data文件夹下的数据库文件夹和ibdata1文件拷贝到MySQL2的data文件夹下,覆盖ibdata1文件

3、如果遇到无法copy的文件,选择跳过,说明此文件是损坏文件

4、重启MySQL2,DOS界面进入数据库,执行drop table 删除此前发现的损坏表,再重启MySQL2,能正常启动

5、MySQL2已接收MySQL中指定数据库的所有正常表

免责声明:文章转载自《MySQL 数据恢复》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇二分图的最大匹配、完美匹配和匈牙利算法(转载)Selenium+python --定位下拉列表框并选取内容下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何查看Oracle,MySQL,SQLServer三大数据库的事务隔离级别

1:mysql的事务隔离级别查看方法 mysql 最简单,执行这条语句就行:select @@tx_isolation 详情: 1.查看当前会话隔离级别 select @@tx_isolation; 2.查看系统当前隔离级别 select @@global.tx_isolation; 3.设置当前会话隔离级别 set session transactio...

Android如何快速卸载apk

       在Adnroid中,直接运行ADB UNInstall无法卸载APK。害得哥每次进Settings去手工去卸载。        今天哥终于受不了,直接在DDMS里删除APK。然后再运行ADB UNINSTALL,居然成功!        所以哥马上写了三个脚本,一个是删除APK包括它下面的sqlite,share pref等,还有一个是卸载这...

Android studio实现简单的CRUD

1.打开Android studio ,创建项目DataBase01 2.进行UI设计,如图 目的:实现对姓名及其爱好的增删改查 3.创建DB.java,用于创建数据库,并做相关操作 在该目录下右键->new->java class 点击OK,创建成功。创建成功后,会有红线标识错误 选择Implement method ,导入onCrea...

oracle查看和修改最大连接数

第一步,在cmd命令行,输入sqlplus 或者直接在plsql中打开command window第二步,根据提示输入用户名与密码1. 查看processes和sessions参数 1 2 3 4 5 6 7 8 9 10 11 12 13 SQL> show parameter processes     NAME            ...

docker实例之mysql的使用

docker实例之mysql的使用 常用步骤 命令 1:搜索镜像 docker search xxx 2:拉取镜像 docker pull xxx:yy 3:查看镜像 docker image inspect xxx:yy 4:运行容器 docker run xxx:yy 5:停止容器 docker container stop...

mysql 实现事务的提交与回滚

最近要对数据库的数据进行一个定时迁移,为了防止在执行过程sql语句因为某些原因报错而导致数据转移混乱,因此要对我们的脚本加以事务进行控制。 首先我们建一张tran_test表 CREATE TABLE tran_test( f1 VARCHAR(10) NOT NULL, f2 INT(1) DEFAULT NULL, PRIMARY K...