我的MySql的data文件里怎么只frm文件
我要怎么恢复以前的数据啊

解决方案 »

  1.   

    你的表是什么存储引擎的?如果是 MyISAM ,则试图找一下你的那些 tableName.frm, tableName.MYI, tableName.MYD ,如果找不到则没什么好办法。只能去找以前的备份或者日志。
    如果是 innodb的,则数据存放在datadir 所对应的 ibdatan 这些文件中,仅是重新安装,应该不会覆盖原来的数据文件。建议你在你的磁盘上搜索一下。 否则基本上你只能从备份来恢复了。
      

  2.   

    是innodb,ibdatan文件找到了,下边我怎么弄,是不是直接都可以用了
      

  3.   

    如果是安装前原来的ibdata1, 则直接复制到新的datadir 目录下直接覆盖就可以了。
      

  4.   

    在data文件夹内,我现在能看到表名了,就是无法操作表
    报错:
    090823 17:17:43 [ERROR] E:\wanguang\MySQL\MySQL Server 5.0\bin\mysqld-nt: Incorrect information in file: '.\wasteoil\coun.frm'
    090823 17:17:43 [ERROR] E:\wanguang\MySQL\MySQL Server 5.0\bin\mysqld-nt: Incorrect information in file: '.\wasteoil\coun.frm'
      

  5.   

    只要有 frm 文件在,就可以show tables看到表名了。关键现在是你的数据文件。需要把 innodb 的数据文件 ibdata1 恢复了。
      

  6.   

    找到你以前的ibdata ,然后复制过来,如果找不到则没什么办法了。
      

  7.   

    frm文件是表定义文件,你是innodb的话,数据和索引存在ibdata里,所以,你要找到ibdata文件,把它拷贝到配置文件下的innodb_data_file目录下就可以了,如果没有ibdata文件,那只能从以前的日志备份或数据库备份来恢复了
    如果这些都没有了,那只能找别人把之前硬件上已经删除的ibdata找回了
    否则,就没办法咯