frm文件导入mysql5.7_使用frm,ibd文件恢复数据库文件,mysql5.7.31,centos7.5,20200813...

使用frm,ibd文件恢复数据库文件共有3步,安装数据库,恢复表结构,恢复表数据

我实操的软件版本,mysql5.7.31,centos7.5,20200813,数据库展开597MB

一,安装数据库

此步略,

可以参照此篇文章

二,恢复表结构

2.1如果你是数据库完好想迁移数据库数据的,

直接导出表结构sql文件,到新库运行就行了,我就是这种情况

2.2数据库损坏,只有frm文件

在恢复模式下导出表结构sql文件

1.创建一个新数据库,然后创建一个和需要恢复的表的同名表,且引擎必须为InnoDB(即引擎为InnoDB的t_user表,其结构无所谓,字段数量相同就行),

2.关闭数据库服务(service mysqld stop),然后拿原来的desktop_document2.frm替换新建的数据库中的desktop_document2.frm(/var/lib/mysql/hue/desktop_document2.frm)

3.接着对配置文件(my.cnf)设置innodb_force_recovery = 6,重启数据库,desc desktop_document2查看表结构

导出表结构: mysqldump -uroot -pxxx -d hue desktop_document2>db.sql;

如果出现权限问题,记得 chmod 700 /var/lib/mysql/hue;chown -R mysql:mysql /var/lib/mysql

通过以上任意一步,得到表结构sql文件,在新数据库执行该sql文件,即可导入数据库结构,

继续往下执行

三,恢复表数据

我们此时已经导入所有表的完整的表结构,并且重启数据库,将数据库调整回正常模式,

此时innodb_force_recovery=0

往下进行分离表空间的操作

3.1分离表空间

执行以下语句,批量生成可供执行的sql语句(修改database_name)

SELECTCONCAT('ALTER TABLE', table_name, 'DISCARD TABLESPACE;')FROMinformation_schema.TABLESWHERETABLE_SCHEMA= 'database_name';

生成形如以下的sql语句

ALTER TABLEQRTZ_BLOB_TRIGGERS DISCARD TABLESPACE;ALTER TABLEQRTZ_CALENDARS DISCARD TABLESPACE;ALTER TABLEQRTZ_CRON_TRIGGERS DISCARD TABLESPACE;ALTER TABLEQRTZ_FIRED_TRIGGERS DISCARD TABLESPACE;ALTER TABLEQRTZ_JOB_DETAILS DISCARD TABLESPACE;ALTER TABLEQRTZ_LOCKS DISCARD TABLESPACE;ALTER TABLEQRTZ_PAUSED_TRIGGER_GRPS DISCARD TABLESPACE;ALTER TABLE QRTZ_SCHEDULER_STATE DISCARD TABLESPACE;

复制粘贴以上语句,批量执行

可能会提示外键问题,

ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails

在第一行放上以下语句解决

SET foreign_key_checks = 0;

3.2导入表空间

参照分离空间时的操作,先使用以下语句批量生成执行语句(修改database_name)

SELECTCONCAT('ALTER TABLE', table_name, 'IMPORT TABLESPACE;')FROMinformation_schema.TABLESWHERETABLE_SCHEMA= 'database_name';

生成形如以下的sql语句

ALTER TABLEQRTZ_CALENDARS IMPORT TABLESPACE;ALTER TABLEQRTZ_CRON_TRIGGERS IMPORT TABLESPACE;ALTER TABLEQRTZ_FIRED_TRIGGERS IMPORT TABLESPACE;ALTER TABLEQRTZ_JOB_DETAILS IMPORT TABLESPACE;ALTER TABLEQRTZ_LOCKS IMPORT TABLESPACE;ALTER TABLEQRTZ_PAUSED_TRIGGER_GRPS IMPORT TABLESPACE;ALTER TABLEQRTZ_SCHEDULER_STATE IMPORT TABLESPACE;ALTER TABLE QRTZ_SIMPLE_TRIGGERS IMPORT TABLESPACE;

复制粘贴以上语句,批量执行

至此,完成数据库数据导入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值