前提:保存了需要恢复数据库的文件 .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

更多相关文章

  1. android 目录结构,adb环境变量配置
  2. Android开发从零开始之java-泛型初步
  3. 链接器解析多重定义的全局变量
  4. android Uri获取真实路径转换成File的方法
  5. Android(安卓)源码结构
  6. Gradle(二) 项目结构
  7. android 系统文件目录结构
  8. Android(安卓)识别SIM卡类型
  9. Android(安卓)studio 简单的多线程

随机推荐

  1. 安卓开发笔记(三)android 相对布局属性
  2. Android之布局属性归纳
  3. Android Framework(I)Android Spring Jso
  4. Android中layout属性大全
  5. android总结
  6. Android 自学杂记
  7. Android Studio中快速替换styles的正则表
  8. Android 网络编程 目录
  9. Android常用UI界面设计及国际化
  10. Android输入系统(三):加载按键映射