前提条件

  • 数据库版本需与恢复数据的版本一致
  • 数据库名及字符集一致

1. dbsake

下载dbsake小工具并给工具赋予执行权限

curl -s get.dbsake.net > dbsake && chmod u+x dbsake

2. 将frm文件全部上传至backup目录

mkdir backup

3. 解析出所有表数据结构

./dbsake frmdump backup/*.frm > create_database.sql

4. 创建同名数据库并指定字符集

注:字符集需与恢复数据库一致

CREATE DATABASE 表名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

5. 恢复表结构

use 表名;
source create_database.sql;

至此:数据库表结构已恢复,只不过没有数据


6. 卸载数据表空间

不支持通配符,需挨个卸载

ALTER TABLE 表名 DISCARD TABLESPACE;

7. 查看mysql数据路径

show variables like 'datadir';

进入上述路径,会有一个数据库同名文件夹,将ibd文件上传至此目录即可

8. 再进入mysql恢复数据

ALTER TABLE 表名 IMPORT TABLESPACE;
03-29 23:24