该表被标记为已崩溃,应予以修复


191

我在wordpress phpMyadmin中遇到此错误

#145 - Table './DB_NAME/wp_posts' is marked as crashed and should be repaired 

当我登录phpMyadmin时,它说wp_posts正在“使用中”

因此,我的网站目前关闭。

我用谷歌搜索了这个问题,但是在phpMyadmin上没有看到“修复”按钮。请让我知道如何解决此问题。我不确定在哪里发出PHP命令。请告知,我对PHP的熟练程度非常基础。

Answers:



183

从服务器的命令行运行此命令:

 mysqlcheck --repair --all-databases

45
为避免出现“拒绝访问”错误,您可能必须在此命令中添加用户名和密码。mysqlcheck -uroot -p --repair --all-databases并提供密码。
wruckie '16

119

当我的服务器可用磁盘空间为0时,我遇到了同样的问题

您可以使用命令(mysql文件必须有足够的空间)

REPAIR TABLE `<table name>`;

用于修理单个桌子


很有帮助,我遇到了Drupal v7.6x UC表的问题,该表突然出现了。在phpMyAdmin SQL控制台中如上所述发出REPAIR TABLE命令并修复它。谢天谢地stackoverflow !! 干杯!
Paul B

25

通过SSH连接到服务器

然后连接到您的mysql控制台

USE user_base
REPAIR TABLE TABLE;

-要么-

如果当前数据库中有很多损坏的表:

mysqlcheck -uUSER -pPASSWORD  --repair --extended user_base

如果很多数据库中都有很多坏表:

mysqlcheck -uUSER -pPASSWORD  --repair --extended -A

2
不要将密码放在命令行中,它们会以不安全的方式和位置保存在历史记录中。mysql命令允许您-p单独传递参数,然后询问您的密码。
Thierry J.19年

7

当我收到此错误时:

#145-表'。\ engine \ phpbb3_posts'被标记为崩溃,应进行修复

我在PhpMyAdmin中运行了此命令来修复它:

REPAIR TABLE phpbb3_posts;

6

这意味着您的MySQL表已损坏,您需要对其进行修复。用

myisamchk -r /DB_NAME/wp_posts

从命令行。在运行修复程序时,您应该暂时关闭网站,以便在修复数据库时不会尝试与数据库建立新连接。


我问了以上评论,但我认为他已退出,因此再次向您询问。“非常感谢,我的网站又重新上线。但是,一个问题是,由于数据库已损坏,我又对其进行了修复,我应该担心什么吗?我应该调查是否使其他任何东西坏了?或者应该小心翼翼。一切?”
约翰·康纳

您不必担心任何事情。修复数据库后,您的站点将再次运行。它可能会在某个时候再次损坏,它发生了,只需再次对其进行修复。还要定期进行备份,您会没事的
Dmitri
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.