mysql "Table Crashed"

修复的方法:
使用中会出现"Table Crashed"的情况,可以使用mysqlcheck和myisamchk方法进行修复。
修复所有的库的表:
mysqlcheck -a -c -o -r --all-databases -uroot -p
和下句相同:
mysqlcheck -a -c -o -r -A -uroot -p
即可最佳化所有db
参数的意义如下:
-a = Analyse given tables.
-c = Check table for errors
-o = Optimise table
-r = Can fix almost anything except unique keys that aren't unique
-A(--all-databases)=修复所有的数据库
当用mysqlcheck不能修复时,对于用MyISAM引擎的表可以用myisamchk进行修复,特别是出现(errno:145)错误时。
Mysql表的修复:
a. 执行myisamchk --recover --quick table_name(或myisamchk -r -q table_name) 命令,如:myisamchk --recover --quick /var/lib/mysql/DB/T_Resource。该命令试图只根据索引的内容进行修复,这样做不触及数据文件。
b. 如果问题仍存在,可以使用myisamchk --recover table_name命令, 忽略 --quick选项,这样允许修改数据文件。
c. 如果还不行,可以使用myisamchk --safe-recover table_name命令,这种方法比普通方法要慢,但能修复 --recover不能修复的问题。
myisamchk可用crontab定�r最佳化table
0 * * 0 /usr/bin/myisamchk -s /var/lib/mysql/*/*.MYI
 

你可能感兴趣的:(mysql,数据库,table,mysqlcheck,crashed,myisamchk)