如果因不可控原因导致 Mysql 服务无法启动,可以通过Mysql表对应的.ibd文件恢复数据。
MySQL的数据文件包括存储表数据的“.frm”文件和存储数据的“.ibd”文件,使用“.ibd”文件恢复数据。
1. 备份原有数据库数据文件
数据文件目录位置通过 my.ini 发现,如 :
# Path to the database root
datadir=C:/ProgramData/MySQL/MySQL Server 8.0\Data
2. 重新搭建 MySQL 环境;
3 新建数据库;
4 创建一张表,表结构与原表结构一致
5 删除新建的表空间
ALTER TABLE 表名称 DISCARD TABLESPACE;
5 将待恢复的 .ibd 文件复制到目标数据库文件夹下
6 导入表空间
ALTER TABLE <表名称> IMPORT TABLESPACE;