【即将关站通知●已关闭注册功能】,倒计时剩余:计算中...

[discuz建站技术] discuz解决"is marked as crashed and should be repaired"故障

[复制链接]
魔趣吧站长魔趣吧官方成员 实名认证 发表于 2019-12-10 21:25:42 | 显示全部楼层 |阅读模式
Table '.\Tablename\posts' is marked as crashed and should be repaired
8 m, F5 |5 _$ @9 T8 K" M
! Y9 O( o% D! l提示说论坛的帖子表posts被标记有问题,需要修复。我记得以前也出现过类似的问题,但是只要点击Phpmyadmin上的repair按纽就自动修复了,但是这次很绝,什么都没有.于是赶快上网查找原因。最终将问题解决。解决方法如下:; y% Z; b; v# N+ P; I! s

; o" j8 x  }4 f找到mysql的安装目录的bin/myisamchk工具,在命令行中输入:
0 n& Q/ f! S: w, N3 m$ Y8 I; S/ G0 ?- k! T
myisamchk -c -r ../data/tablename/posts.MYI; v) |4 k4 E9 K( x8 N1 A  u
8 S+ S# g* o$ Q) o! R7 ~
然后myisamchk 工具会帮助你恢复数据表的索引。好象也不用重新启动mysql,问题就解决了。" Z: X) I" h( I' n/ h' F' j

+ ?7 I: m7 g# c问题分析:! M) Z# E5 r- n

: }6 Y% T6 q' `" l% t* i% m; @$ O) z- w1、; j( [- ]! d6 t: f! U; C
错误产生原因,有网友说是频繁查询和更新dede_archives表造成的索引错误,因为我的页面没有静态生成,而是动态页面,因此比较同意这种说法。) s7 l% ~9 A/ W! z, S
还有说法为是MYSQL数据库因为某种原因而受到了损坏,如:数据库服务器突发性的断电、在提在数据库表提供服务时对表的原文件进行某种操作都有可能导致
: ?7 G) u! J! `/ {' W6 K( k0 }MYSQL数据库表被损坏而无法读取数据。总之就是因为某些不可测的问题造成表的损坏。
9 r) O0 B2 k6 {/ D7 q) c7 A3 l& e$ p' R3 R
; p! O) o- p  B- B9 M0 R8 D
2、问题解决办法。
  K- J; J6 d, w% l9 |9 D
  c: J1 e* K; I0 J: G6 x: z当你试图修复一个被破坏的表的问题时,有三种修复类型。如果你得到一个错误信息指出一个临时文件不能建立,删除信息所指出的文件并再试一次--这通常是上一次修复操作遗留下来的。
5 X+ Y, ^0 d$ f/ ?1 G( s这三种修复方法如下所示:
( d2 D. }: d* h1 }0 S6 ~* B+ H7 p% myisamchk --recover --quick /path/to/tblName' s+ h% }6 l( Z) q9 F
% myisamchk --recover /path/to/tblName+ R' E, D- ]1 v' s! i9 s1 q
% myisamchk --safe-recover /path/to/tblName
% F9 S2 Q) a, n( ^. m1 m0 o( I3 ]% R1 j
第一种是最快的,用来修复最普通的问题;而最后一种是最慢的,用来修复一些其它方法所不能修复的问题。# [' E* x: {! u8 s/ Q
  z) ?, o& G; }* x. \1 Z: v1 k5 K/ y3 u
检查和修复MySQL数据文件4 g$ C9 @9 M' L- K3 w. g
如果上面的方法无法修复一个被损坏的表,在你放弃之前,你还可以试试下面这两个技巧:
$ @6 M% P" X& \4 S( ?/ |% z3 m5 F# @% k
果你怀疑表的索引文件(*.MYI)发生了不可修复的错误,甚至是丢失了这个文件,你可以使用数据文件(*.MYD)和数据格式文件(*.frm)重新生  w; h9 u& r$ R  O$ [
成它。首先制作一个数据文件(tblName.MYD)的拷贝。重启你的MySQL服务并连接到这个服务上,使用下面的命令删除表的内容:6 D" G$ k- j. Z0 c
mysql> DELETE FROM tblName;
6 G! w( L  O) `- {1 v# T0 t/ z; s0 X! y7 e7 g. q
删除表的内容的同时,会建立一个新的索引文件。退出登录并重新关闭服务,然后用你刚才保存的数据文件(tblName.MYD)覆盖新的(空)数据文件。% E) C$ @2 J4 I" J
最后,使用myisamchk执行标准的修复(上面的第二种方法),根据表的数据的内容和表的格式文件重新生成索引数据。: D' t# N% ^. e8 G

- V1 j* ^% F6 \$ J& z, ?- c7 P如果你的表的& J( I# p% {5 K1 e% ^
格式文件(tblName.frm)丢失了或者是发生了不可修复的错误,但是你清楚如何使用相应的CREATE
  K4 a' n0 [( Z& g+ z% `  HTABLE语句来重新生成这张表,你可以重新生成一个新的.frm文件并和你的数据文件和索引文件(如果索引文件有问题,使用上面的方法重建一个新的)一* n) V! [: X+ s3 z0 z
起使用。首先制作一个数据和索引文件的拷贝,然后删除原来的文件(删除数据目录下有关这个表的所有记录)。
* z( [: O3 ]- g8 c( v9 W$ B2 q- u# H$ @$ |
启动MySQL服务并使用当初的CREATE TABLE文件建立一个新的表。新的.frm文件应该可以正常工作了,但是最好你还是执行一下标准的修复(上面的第二种方法)。

; v* v( {2 r' E4 L5 k' F' Z1 Q/ ^9 W- y' m

5 I  k! s7 E' ?1 m* g9 g
        为了不冒失修复,故采取保守做法,我们知道 MySQL 一个高效的管理工具便是 PhpMyAdmin,而在该管理软件中就包含了对表的检查、分析、修复、优化功能,比起网上提供的含糊命令行来说更安全更简便。
discuz解决"is marked as crashed and should be repaired"故障
" R0 W2 T  a6 X5 z/ J& N
通过实践,在使用检查表功能后确实发现了问题,之后使用修复功能进行了修复,反馈结果每个表都已经 ok,再执行一次优化,重新测试访问网站终于恢复了正常。一场灾难就此避免……
: m% J, V* n: X6 ]8 e

魔趣吧版权声明1,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2,本文内容仅代表作者本人观点,不代表本网站立场,作者文责自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3,本文内容,包括但不限于源码、文字、图片等,仅供参考使用,本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容
4,如您认为本文内容侵犯了您的权益,请与我们联系!我们将在5个工作日内做出处理!本站保留全部修改、解释、更新本声明的权利魔趣吧

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线支持
关闭
欢迎来到魔趣吧
如果你有建站技术问题、仿站需求、模板插件修改需求,请联系我们的技术支持!高效率,低价格的帮你搞定!
请认准魔趣吧唯一官网:www.moqu8.com,谨防假冒网站!

一般问题请到【求助区】发帖咨询(免费)!

邮箱咨询:
winkill2012@qq.com

邮箱咨询需注明:资源地址+本站用户名+具体问题,三者缺一不做处理。非本站资源不处理!
在线支持
快速回复 返回列表

关于魔趣吧|魔趣建站

魔趣吧,志在打造全国最大的建站资源共享平台。 本站提供海量免费的建站资源,包括WordPress模板、Discuz精仿模板、PHPWind模板、phpcms模板、Discuz精仿插件、帝国cms模板、织梦模板等上万精品模板!同时,提供各种建站素材、JS特效、整站程序源码!
服务中文站长,传播分享精神!建站,就来魔趣吧!!
2015-2024 魔趣吧 ( 豫ICP备2021024354号 )   豫公网安备41030402000182号 百度统计
HTTPS安全认证
|网站地图 | 已运行:天 
温馨提示:本站所有资源、教程、源码,不得用于非法站点及用途,否则,本站将终止提供任何服务! Powered by Discuz! Licensed