myisamchk修复损坏的MySQL数据库方法
方法一,直接在命令模式下修改
1、myisamchk
修复mysql数据库,还有一个命令:mysqlcheck
mysqlcheck -a -c -o -r –all-databases -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
如果是在win主机下,修复指定的表,使用:mysqlcheck -o -r 数据库名称 -u root -p,在提示输入密码的框中,输入mysql的root管理密码,mysqlcheck即会对数据库进行检测修复
实例
使用 myisamchk 必须暂时停止 MySQL 服务器。例如,我们要检修 discuz 数据库。执行以下操作:
# service mysql stop (停止 MySQL );
# myisamchk -r /数据库文件的绝对路径/*MYI
# service mysql start
myisamchk 会自动检查并修复数据表中的索引错误。
2、mysqlcheck
使用 mysqlcheck 无需停止 MySQL ,可以进行热修复。操作步骤如下:# mysqlcheck -r discuz.*
注意,无论是 myisamchk 还是 mysqlcheck ,一般情况下不要使用 -f 强制修复,-f 参数会在遇到一般修复无法成功的时候删除部分出错数据以尝试修复
方法二,利用phpmyadmin快速修改损坏mysql
1、登录 phpMyAdmin,进入 phpMyAdmin 数据列表页面;
2、选择一个数据表前的方框;
3、页面下方“选中项”下拉选择“修复表”;