解决方案 »

  1.   

    ibdata1
    ib_logfile0
    ib_logfile1
    还有其它数据库文件目录,全部复制到新的DATA目录下即可。
      

  2.   


    .frm   .ibd  都要放到对应的目录下面么?
      

  3.   


    我试过  把ib_logfile *  删掉重建  就可以启动了。但是 无论是是否把.ibd 文件拷贝过去  都会出现找不到表的错误
      

  4.   

    找不到表的原因是ibdata1中的数据不对
      

  5.   

    实在不行用第三方工具呢,xtrabackup恢复innodb不错
    Linux的话,是不是文件权限的问题。我以前把var/lib/mysql这个目录删了重建再重新授权,数据库就无法恢复;但是如果把var/lib/mysql这个文件夹保留,只是清空这个文件夹,可以正常恢复启动
      

  6.   

    解决了,确实可以通过拷贝data文件夹进行恢复。1. 删掉现有的data文件夹(先备份一份)
    2. 将需要恢复的data文件夹放到对应位置
    3. 修改my.cnf,加入innodb_force_recovery=4或者6
    4. 直接启动,注意err文件的报错
    5. 有可能报一些权限上的错误,逐条修改即可
    6. 启动之后直接mysqldump,赶紧恢复数据
    7. 成功