具体错误如下:
表'。“\Tablename\posts”被标记为已崩溃,应该修复
建议将论坛的帖子表帖子标记为有问题,需要修复。我记得以前也发生过类似的问题,但是在Phpmyadmin上点击修复按钮就自动修复了,不过这次绝对没事,我赶紧上网找原因。最终会解决问题。解决方法如下:
找到mysql安装目录的bin/myisamchk工具,输入:
myisamchk -c -r../data/tablename/post。MYI
然后myisamchk工具会帮你恢复数据表的索引。好像不用重启mysql问题就解决了。
问题分析:
1。错误的原因。有网友表示,索引错误是由于频繁查询更新dede_archives表造成的。因为我的页面不是静态生成的,是动态页面,所以我同意这个说法。
总之就是因为一些不可预知的问题,表损坏了。
2。问题的解决方案。
当您试图修复损坏的桌子时,有三种类型的修复方法。如果您收到无法创建临时文件的错误消息,请删除消息中指示的文件,然后重试-这通常是上次修复操作留下的。
这三个修复如下:
% myisamchk-recover-quick/path/to/TBL name
% myisamchk-recover/path/to/TBL name
% myisamchk-safe-recover/path/to/TBL name
第一种最快,用于修复最常见的问题;而最后一种是最慢的,用来修复一些其他方法无法修复的问题。
检查并修复MySQL数据文件
如果上面的方法不能修复一个损坏的表,在你放弃之前,你还可以试试下面两个招数:
如果您怀疑索引文件(*。MYI)的表犯了一个不可修复的错误甚至丢失了这个文件,你可以使用数据文件(*。MYD)和数据格式文件(*。frm)来重新生成它
。首先复制数据文件(tblName。MYD)。重新启动MySQL服务并连接到该服务,使用以下命令删除表中的内容:
MySQL gt;从tblName中删除;
在删除表的内容时,将建立一个新的索引文件。注销并再次关闭服务,然后用刚刚保存的数据文件(tblName)覆盖新的(空)数据文件。MYD)。
最后用myisamchk进行标准修复(上面第二种方法),根据表格的数据内容和表格的格式文件重新生成索引数据。
如果您的表的格式化文件(tblName.frm)丢失或出现不可修复的错误,但您知道如何使用相应的CREATE
TABLE语句来重新生成此表,您可以重新生成一个新的。frm文件,并用你的数据文件和索引文件重建一个新的(如果索引文件有问题,用上面的方法。
。首先,复制数据和索引文件,然后删除原始文件(删除数据目录中关于该表的所有记录)。
启动MySQL服务,使用原来的CREATE TABLE文件创建一个新表。新的。frm文件应该可以正常工作,但是你最好执行标准修复(上面的第二种方法)。
为了不贸然修复,我们采取保守的方法。我们知道MySQL的一个高效的管理工具是PhpMyAdmin,管理软件包含了查表、分析、修复、优化表的功能,比网上提供的模糊命令行更安全简单。
一场灾难就这样避免了...