Mysql 的MYISAM引擎拷贝出现异常——Incorrect information in file 'xxx.frm'

时间:2022-11-19 01:54:21

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                                                |
+---------------+--------+----------+--------------------------------------------------------+