Mysql 数据库的表坏了,复修不到,该怎么办?使用phpmyadmin可以列出有什么表,但看不到内容及结构回传
#1146 - Table 'oscommerce.banners' doesn't exist 但在Mysql server内的data有存在啊,9KB
C:\MySQL\MySQL Server 5.0\data\oscommerce\banners.frm但总是开不到啊,用过复修,但不行啊,应该怎么办?谢谢

解决方案 »

  1.   

    先得看看你的表是基于什么引擎的
    1、MYISAM的表可以用 MYISAMCHk来修复windows 下:MYISAMCHK.EXE -B -o 你的表路径。
    LINUX下:直接用 --myisam-recover 选项重新启动MYSQLD服务。2、INNODB表MYSQL现在还没有专门的工具来做修复。
    只能在MY.CNF或者MY.INI里设置innodb_force_recovery=1,避免在导出数据时再crash。
    然后重新启动数据库。
    用MYSQLDUMP 或者 SELECT * FROM 你的 表名 into outfile '导出文件路径';
    然后删除原来的表, DROP TABLE 你的表名;
    然后用MYSQLIMPORT 或者SOURCE 或者 INFILE的形式导入数据。
      

  2.   

    如果你想看看那个表坏了的话。
    用CHECK TABLE 看看具体的表mysql> check table temp;
    +-----------+-------+----------+----------+
    | Table     | Op    | Msg_type | Msg_text |
    +-----------+-------+----------+----------+
    | test.temp | check | status   | OK       |
    +-----------+-------+----------+----------+
    1 row in set (0.09 sec)
      

  3.   

    更多见:
    http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html