macos mysql通过.ibd文件恢复数据

拿到备份的文件如下:
备份文件
这里frm文件由于数据表结构是已知的,所以没有用。
ibd文件为存储的数据文件

1:本地新建一个新的数据库 :
数据库
终端进入:
cd /usr/local/mysql/data/

如果报没有权限则运行:
sudo chmod -R a+rwx /usr/local/mysql/data/

进入到data/test下

在新建的数据库中运行建表语句:
需要在建表语句后加上: ROW_FORMAT=COMPACT

执行:
ALTER TABLE xxxx DISCARD TABLESPACE;
解除表空间,ls查看会发现.idb文件已经被删除

在终端执行 open .命令打开访达

把需要的.ibd复制到test目录下

在这里插入图片描述
ls -l目录查看会发现 复制进去的.ibd文件不属于mysql

需要执行命令:
sudo chown mysql:mysql xxx.ibd

ls -l 执行后看到.ibd文件属于mysql则成功
在这里插入图片描述
最后执行命令:
alter table xxx import tablespace;

恢复数据成功。

ps:如果操作不成功,需要停掉mysql服务,删除相关的日志和数据库,命令如下:
rm -rf /usr/local/mysql/data/ib_logfile0
rm -rf /usr/local/mysql/data/ib_logfile1
rm -rf /usr/local/mysql/data/ibdata1
rm -rf /usr/local/mysql/data/btmp1
rm -rf /usr/local/mysql/data/test(数据库名)

发布了2 篇原创文章 · 获赞 1 · 访问量 46

猜你喜欢

转载自blog.csdn.net/weixin_45503703/article/details/104753912