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

天大地大妈咪最大 提交于 2020-03-09 19:11:23

拿到备份的文件如下:
备份文件
这里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(数据库名)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!