MYISAM引擎有三个文件 

    .FRM    存储表结构

    .MYD    存储数据

    .MYI   存储索引

    当复制表时,将这三个文件同时复制到指定目录下。

异常处理:

1. Incorrect information in file 'xxx.frm'

    无论怎么复制重启,访问数据库都会出现这个问题。

  解决办法:表使用MyISAM引擎,并且创建表结构(已知情况下),

    备份,x.frm,x.MYI,x.MYD三个文件,

    从mysql data目录删除 一般是/var/lib/mysql目录下

    再次创建表

    复制 .MYD .MYI文件到数据目录。然后重启mysql服务


2. Incorrect key file for table 'xxx.MYI';try to repair it.

   执行下面步骤

#myisamchk -of ./xxx.MYI #第一步
#myisamchk -r ./xxx.MYI  #第二步
#myisamchk ./xxx.MYI   #第三步

    重启mysql服务

service mysql restart

    登陆Mysql后,操作表发现还是出现上述异常,则执行一下操作

mysql> repair table hosts use_frm;
+---------------+--------+----------+-------------------------------------+
| Table         | Op     | Msg_type | Msg_text                            |
+---------------+--------+----------+-------------------------------------+
| hdmysql.hosts | repair | warning  | Number of rows changed from 0 to 18 |
| hdmysql.hosts | repair | status   | OK                                  |
+---------------+--------+----------+-------------------------------------+

    修复表后面一定要加上 use_frm

    注:若采用下面的方式,则可能出现一直不能修复

mysql> repair table hosts;
+---------------+--------+----------+--------------------------------------------------------+
|Table         | Op     | Msg_type | Msg_text                                               |
+---------------+--------+----------+--------------------------------------------------------+
| hdmysql.hosts | repair | Error    | Incorrect key file for table 'hosts'; try to repair it |
| hdmysql.hosts | repair | error    | Corrupt                                                |
+---------------+--------+----------+--------------------------------------------------------+