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