共计 754 个字符,预计需要花费 2 分钟才能阅读完成。
丸趣 TV 小编给大家分享一下 InnoDB 类型 MySql 恢复表结构与数据的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
前提:保存了需要恢复数据库的文件 .frm 和 .ibd 文件
条件:InnoDB 类型的
恢复表结构
1. 新建一个数据库 – 新建一个表,表名和列数和需要恢复数据库相同
2. 停止 mysql 服务器 service mysql stop ,
3. 在 /usr/local/mysql/my.cnf 里面添加 innodb_force_recovery = 6
4. 将需要恢复的表.frm 格式文件 覆盖 /usr/local/mysql/data/ 数据库 下的.frm 格式文件
5. 启动 mysql 服务器 service mysql start
6. 停掉数据库服务 service mysql stop,将 my.cnf 里面的 innodb_force_recovery = 6 注释掉
7. 启动 mysql 服务器 service mysql start
恢复数据
1. 先恢复表结构
2. 执行 alter table `user` discard tablespace ; 执行完之后,数据库目录下的 user.ibd 文件就没了
3. 把你备份的 ibd 放到消失的 user.ibd 文件那里
4. 给这个文件加权限 chown -R mysql:mysql data 所有者为 mysql
5. 执行 alter table `user` import tablespace; 执行完,表数据就可读了,这时候会丢失一些诸如表行记录数等存在系统表里的信息
备注: 如果遇到外键约束,在语句前加上 SET FOREIGN_KEY_CHECKS = 0; 完成后记得改为 1
看完了这篇文章,相信你对“InnoDB 类型 MySql 恢复表结构与数据的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!