MyISAM存储引擎的某个表文件出错之后,仅影响到该表,而不会影响到其他表,更不会影响到其他的数据库。 如果我们的出据苦正在运行过程中发现某个MyISAM表出现问题了,则可以在线通过check table 命令来尝试校验他, 并可以通过repair table命令来尝试修复。在数据库关闭状态下,我们也可以通过myisamchk工具来对数据库中某个(或某些)表进行检测或者修复。 不过强烈建议不到万不得已不要轻易对表进行修复操作, 修复之前尽量做好可能的备份工作,以免带来不必要的后果。
在mysql\bin目录下直接使用:
myisamchk /path/to/tableName 检查表是否有错误
e:\wamp\bin\mysql\mysql5.7.14\bin>myisamchk ../data/db_chat/user
Checking MyISAM file: ../data/db_chat/user
Data records: 5 Deleted blocks: 0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check record links
在mysql\bin目录下使用:
myisamchk -r|-qr /path/to/tableName 修复|快速修复表
e:\wamp\bin\mysql\mysql5.7.14\bin>myisamchk -r ../data/db_chat/user
- recovering (with sort) MyISAM-table '../data/db_chat/user'
Data records: 5
- Fixing index 1