mysqlcheck -A -o -r -uroot -ppasswd
Mysql在运行一段时间后,随着库容量的增大,表的增多,有的时候因为掉电或者其他原因导致数据库损坏,比如: 检查优化并修复所有的数据库,我们可以使用mysql自带的mysqlcheck命令来快速修复所有的数据库或者特定的数据库;
进入Mysql的Bin目录:d:/MySQL/MySQL Server 4.1/bin or/usr/bin/
(ls my* 显示my开头的文件)(linux 下库的地址在/var/lib/mysql/)
运行:mysqlcheck -A -o -r -uroot -ppasswd
注意,将root用户名和passwd密码改为你的MySQL的密码
如果使用WIN服务器,可以先登陆DB服务器,进入此路径,不用进mysql里
D:\CD MYSQL
D:\mysql>CD BIN
D:\mysql\bin>MYISAMCHK -r d:\mysql\data\guild\msg_table.myi(msg_table)
- check key delete-chain
- check record delete-chain
- recovering (with sort) MyISAM-table 'd:\mysql\data\guild\msg_table.myi'
Data records: 23
- Fixing index 1
D:\mysql\bin>MYISAMCHK --safe-recover d:\mysql\data\guild\msg_table.myi
- recovering (with keycache) MyISAM-table 'd:\mysql\data\guild\msg_table.myi'
Data records: 89
D:\mysql\bin>
当不知道哪个表坏了,可以进入mysql数据库:
use guild;
desc msg_table; 看msg_table有没有坏
修复好了进入MYSQL数据库中打命令检查:show table;