Mysql中innodb类型的表放在服务器上,打开的时候报table *** doesn's exist的错误。原来好好的表突然就坏了,但是在数据库里是可以看到这几个表的。现在拿到原始的frm文件了,需要如何恢复?里面数据很重要!先谢过各位!

解决方案 »

  1.   

    innodb 的表中的数据和索引是放在ibdata1表空间文件中的,这个和myisam 都放在 ***.frm , ***.myd, ***.myi 不一样。由于你的 ***.frm 仍存在,所以 "在数据库里是可以看到这几个表的。"
    但所对就在数据文件不在了,所以 "打开的时候报table *** doesn's exist的错误。"
      

  2.   

    现在拿到原始的frm文件了,需要如何恢复?里面数据很重要!
    找到你的备份,如果没有备份文件,则基本没什么办法,
    你还有些什么文件,文件情况如何? 这一点从你现在描述中无法进一步分析,也无从给你什么建议。
      

  3.   

    当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
      

  4.   


    现在还拿到原来创这些表的服务器的ibdata1文件了,有什么办法吗?
      

  5.   

    现在还拿到原来创这些表的服务器的ibdata1文件了,有什么办法吗?找台空机器,安装相同版本的MYSQL,然后把整个DATA目录下的东西全复制过去。然后用 mysqldump 将记录导出。
      

  6.   


    是不是还需要原服务器上ib_logfile1和ib_logfile2才能恢复?