也可能其中任意方法都可以适用于本数据库。我暂时没有条件测试,有条件的去测试一下,有望解决数据库报此错误的问题。
预防措施:
1、一定要备份一次数据库,起码保留了表结构,有些可有可无的数据,可以直接覆盖。
2、重要的数据要经常注意备份,一般一个月左右备份一次。
3、出现此类错误,一般能够解决,经jb51.net测试下面的方法是比较可行的。但偶尔会有数据丢失的情况,强烈建议先备份。
windows服务器下mysql的修复方法:
F:sqldatamysqlbin>cd .. 返回上级目录
F:sqldatamysql>cd data 进入数据库所在目录(mysql的数据库文件都是放在data这个目录里面的)
F:sqldatamysqldata>cd jb51 进入数据库,windows服务器中数据库就是一个文件夹(这里以jb51为例子)
F:sqldatamysqldatajb51>myisamchk -r jb51_soft
- recovering (with sort) MyISAM-table 'jb51_soft'
Data records: 7216
- Fixing index 1
- Fixing index 2
- Fixing index 3
F:sqldatamysqldatajb51>
jb51_soft为数据库的表名,提示哪个表错误,就修复哪个表。
为了以后方便,我们可以写成一个批处理,将这个文件保存为fixit.bat放到数据库所在的目录即可。
下面是网上收集的多种方法,大家可以测试下。
(一)
昨晚浏览自己的Blog的时候,突然发现所有页面都无法显示,到后台查看的时候,发现一个”Table ‘xxx' is marked as crashed and should be repaired” 的错误。连忙上网搜索,原来修改这个严重的错误很简单:
1. 进入管理mysql的phpmyadmin
2. 在左则选中自己的数据库
3. 在右则勾选中错误信息中的那个'xxx'表
4. 滚动屏幕到下面,有个下拉菜单(With selected:),选择”Repair table”
修改之后,并没有发现有什么数据损失,连忙备份了一份数据库到邮件里面,备份还是很重要的!
(二)
现象:
mysql> use yourealcn
Database changed
mysql> select user,company from biz_user where commend='1' order by regtime desc,checked desc limit 0,5;
ERROR 145 (HY000): Table './yourealcn/biz_user' is marked as crashed and should be repaired
mysql> exit
使用命令myisamchk修复数据库的MYI文件即可
# /usr/local/mysql5/bin/myisamchk -c -r /bak/lib/mysql/yourealcn/biz_user.*










