- 服务器数据库宕机无法重启
- 数据库原始ddl丢失
- 最重要的:自己随便折腾数据库玩
- 拿到数据库恢复文件(frm和ibd文件)
- 服务器下载dbsake
curl-shttp://get.dbsake.net>dbsake
chmodu xdbsake
./dbsake--version
dbsake,version2.1.09525896
开始恢复
- 先利用dbsake通过frm文件恢复表结构
[root@ecs-xxxxxx~]#./dbsakefrmdumptags.frm
--
--Tablestructurefortable`tags`
--CreatedwithMySQLVersion5.7.28
--
CREATETABLE`tags`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`create_time`datetime(6)DEFAULTNULL,
`update_time`datetime(6)DEFAULTNULL,
`name`varchar(255)NOTNULL,
`slug`varchar(50)NOTNULL,
`slug_name`varchar(255)DEFAULTNULL,
`thumbnail`varchar(1023)DEFAULTNULL,
PRIMARYKEY(`id`),
UNIQUEKEY`UK_sn0d91hxu700qcw0n4pebp5vc`(`slug`),
KEY`tags_name`(`name`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;
- 利用上述表结构语句在数据库创建表(直接复制执行上述语句即可)
CREATETABLEtags........;
- 删除刚才新建的表的表空间
ALTERTABLEtagsDISCARDTABLESPACE;
- 将要恢复的tags.ibd文件复制到目标数据库文件夹下
- windows
ctrl C->ctrl V------>到目标数据库文件夹
- linux(注:<database_name> 占位符,表示要表所在的数据库)
cptags.ibd/var/lib/mysql/<database_name>
cd/var/lib/mysql/<database_name>
chownmysql:mysqltags.ibd
- 导入表空间
ALTERTABLEtagsIMPORTTABLESPACE;
打开表试试吧,中间没啥错误就恢复成功了
有啥问题留言哦,感谢阅读,给个赞谢谢啦