最近原为移动mysql 及对mysql进行升级的操做,导至一个很大的数据表不能访问了。百度,谷歌了很多资料,判断为是移动后索引的问题。
但根据以前的修复索引的工作命令。一直没有成功。把版本降回到原来的版本号升级,也是一样的情况。
[root@c1 datacenter_crawler]# myisamchk -r -f tb_test_webContent.MYI
- recovering (with sort) MyISAM-table 'tb_test_webContent.MYI'
Data records: 0
- Fixing index 1
myisamchk: error: myisam_sort_buffer_size is too small
MyISAM-table 'tb_test_webContent.MYI' is not fixed because of errors
Try fixing it by using the --safe-recover (-o), the --force (-f) option or by not using the --quick (-q) flag
[root@c1 datacenter_crawler]# myisamchk -r -f tb_test_webContent.MYI -r -q
- check record delete-chain
- recovering (with sort) MyISAM-table 'tb_test_webContent.MYI'
Data records: 0
- Fixing index 1
myisamchk: error: myisam_sort_buffer_size is too small
MyISAM-table 'tb_test_webContent.MYI' is not fixed because of errors
Try fixing it by using the --safe-recover (-o), the --force (-f) option or by not using the --quick (-q) flag
[root@c1 datacenter_crawler]# myisamchk -r -f tb_test_webContent.MYI -o -q
- check record delete-chain
- recovering (with keycache) MyISAM-table 'tb_test_webContent.MYI'
Data records: 0
Key 1 - Found wrong stored record at 0
MyISAM-table 'tb_test_webContent.MYI' is not fixed because of errors
Try fixing it by using the --safe-recover (-o), the --force (-f) option or by not using the --quick (-q) flag
后通过其它的命令参数。数据库就成功开始修复了。命令是
myisamchk -r -f tb_test_webContent.MYI -o -q
myisamchk具体参数大意,后面补充。