修复错误“is marked as crashed and last (automatic?) repair failed”的几种方法
服务器非法关机,有可能会对部分数据库造成一定影响。一般运行会报错,**.MYI 不能打开。 Can't find file: '***.MYI' 请使用repair.php或者使用phpmyadmin修复一下数据表。
1.使用phpmyadmin修复数据表
进入论坛数据库,然后选择要修复的表,在页脚下拉框选择“修复”即可。 2.如果您的服务器是独立主机强烈建议使用命令行方式进行修复:
修复前将mysql服务停止。
如果是Win主机,打开命令行方式,然后进入到mysql的/bin目录。
执行myisamchk -r d:\mysql\data\*.MYI
其中d:\mysql\data\discuz\换成您的数据库所在路径。
如果是类Unix主机,直接使用myisamchk -r 数据库目录\*.MYI 即可。 其中我用第二种办法时,在phpmyadmin中显示此表正在使用中,phpmyadmin修复操作无法对此表进行修复操作。那就用第三种办法了,朋友服务器用的是win服务器主机,于是打开命令行,首先停止mysql服务:net stop mysql,然后进入到mysql的bin目录,输入:myisamchk -r d:\mysql\data\*.MYI,如果是能确认是哪个表,也可以把前面的*号直接换为具体的表名称,一般全部修复没问题。回车确定后,修复进程就在不断的一个表一个表,一行一行的修复中了。 修复过后,启动mysql数据库,net start mysql,然后到浏览器,打开论坛页面,试着浏览帖子,发贴等,已经全部正常,至此完全恢复OK。 经验就不多说了,在操作过程中中断是非常可怕的事,当然,关机断电更可怕。另外,更重要的一点就是在出问题以后,进行操作修复以前,一定要停掉mysql,然后直接到data目录中,备份好你的数据库,这很关键;一定要是停掉mysql以后备份。备份,是一个很好的习惯!呵!!
|