我的mysql运行在solaris上,一次误操作导致solaris重启,重启后mysql就无法启动了。我把data目录中我的表cms对应的目录cms下所有文件拷贝出来放到另外一个数据库中,仍然不能打开,data目录下有ibdata1等一些文件,   
  请问应该如何恢复,才能得到innodb中的数据?   
  数据是否都在ibdata1中?   
  另外.frm文件都在,没有问题,就是数据无法恢复,哪位能指点一下。分不够可以再加。

解决方案 »

  1.   

    bin 目录下面有修复的 mysql 自带的修复工具 myisampack,试着修复一下,使用参数 safe-recover 吧
    另外
    a.frm
    a.MYD
    a.MYI这3个文件对应你的数据库的一个 a 表
    ibdata1 这个文件可以不要  
      

  2.   

    你原来的MYSQL的ROOT权限和密码要和当前的一样,并且你COPY的那些目录的属主必须是MYSQL
    另外,INNODB类型的库只有FRM文件。
      

  3.   

    ibdata1这个文件是innodb存储引擎的数据文件,很重要。.frm是某表的结构文件,也很重要。从楼主的叙述来看应该使用的是innodb类型的表。建议如下:
    1. 请先确定mysql真的是无法启动。可以查看.err文件,查看错误的原因。一般来讲mysql都可以从日志文件中恢复的,但要耐心等待一段时间,如果你在.err文件中看到了类似让你等待的信息,等一会就没问题。
    2.请确定是否开启了bin-log。如果开启了,可以直接将所有bin-log再次执行,执行语法mysqlbinlog 文件名 | mysql如果上面2条都不行,我只能同情你了!
      

  4.   

    感谢楼上几位大哥。
    我现在是mysql根本无法启动,在启动时没有所起来提示进行修复,接着就提示失败了。
    楼上大哥,请问,1.你说一般mysql都可以从日志文件中恢复,具体应该如何操作;2.请问如何确定开启bin-log?
    在我数据库目录下只有.frm文件,没有其他文件。因为数据库无法启动,我现在只想如何能恢复里面的数据,能不能说的详细些哦……
    谢谢!
      

  5.   

    关注中...前些时间,本人也遇到类似 Mysql无法启动,提示 1067错误,
    试过几种办法 my.ini文件新建,复制,都无果.
    将data目录下的文件,手工备份.
    重新安装的Mysql,可以启动了,然后,再把备份的文件,拷贝到data目录下,原来的数据库正常使用.只是一张表损坏了.
      

  6.   

    ibdata1是比較重要的文件
    之前也遇到過,用舊有備份還原回去
    千萬要記得資料庫的備份