InnoDB类型MySql恢复表结构与数据的示例分析

30次阅读
没有评论

共计 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 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计754字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)