Linux mysql从备份的数据中的恢复数据(从frm和ibd文件还原表结构)

  • 保证当前系统中没有安装mysql
  • 新安装mysql
  • 使用navicat或mysql命令行创建相同的数据库,结构一致
ALTER TABLE example_table DISCARD TABLESPACE;

example_table 指的是表名
执行完后, 数据库目录下的 .ibd 文件都不见了
执行拷贝, 只拷贝 .ibd 文件:
若是提示权限不足,请提升权限

cp -r /home/sower/app/mysqlbak/mysql/fhxytextbook/ /var/lib/mysql/fhxytextbook/

/home/sower/app/mysqlbak/mysql/fhxytextbook/ 是备份的数据库
/var/lib/mysql/fhxytextbook/是新建的数据库

重新修改数据库文件夹权限

 sudo chown mysql:mysql -R /var/lib/mysql/fhxytextbook/

再次使用 navicat或mysql命令行 执行以下语句

ALTER TABLE example_table IMPORT TABLESPACE;

最后重启一下mysql

sudo systemctl restart mysql.service

重要:最好把还原的数据库导出脚本再导入一次。防止莫名的错误,比如ID重复问题。

参考地址:https://stackoverflow.com/questions/26868956/restore-table-structure-from-frm-and-ibd-files

你可能感兴趣的:(Linux mysql从备份的数据中的恢复数据(从frm和ibd文件还原表结构))