前提条件
- 数据库版本需与恢复数据的版本一致
- 数据库名及字符集一致
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;