MySQL 说:#1194 - 表 'tablename' 被标记为崩溃,应该修复

Posted

技术标签:

【中文标题】MySQL 说:#1194 - 表 \'tablename\' 被标记为崩溃,应该修复【英文标题】:MySQL said: #1194 - Table 'tablename' is marked as crashed and should be repairedMySQL 说:#1194 - 表 'tablename' 被标记为崩溃,应该修复 【发布时间】:2013-05-30 17:13:08 【问题描述】:

如果表崩溃,则表示我的系统有问题。

mysql said: 

#1194 - Table 'tablename' is marked as crashed and should be repaired 

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

我知道如何从 phpmyadmin 修复表,但修复方法是否安全?

造成这个问题的重要因素是什么?

问题。一般来说,为什么表会崩溃?

答案。这些可能是原因 -

    服务器的磁盘空间已满。 (请检查实时服务器中的磁盘空间)

    MySQL 服务器关闭不正确/使用数据库时关闭表不正确。

    更多的服务器负载。

【问题讨论】:

你可以发布查询吗? 这可能会有所帮助mysqlperformanceblog.com/2007/11/13/… 一般来说,为什么表会崩溃?”因为它是 MyISAM……它以不安全着称。 您当前的系统正常运行时间是多少?可能是系统关闭不当。检查日志,包括 /var/log/messages 和 mysqld.log,可能是 OOM 杀手或 mysqld 进程失败。 如果磁盘空间已满会怎样? 【参考方案1】:

首先 - 导致表崩溃的原因有很多。

硬盘故障 服务器突然重启 服务器崩溃 固件问题(RAID 控制器或 Bios) 布线缺陷 等

使用 phpmyadmin 进行修复与 mysqlrepair 命令行基本相同。我建议在命令行上修复所有内容:

mysqlrepair -A --auto-repair
mysqlrepair -A -o

或者开始测试:

mysqlrepair -A -c

【讨论】:

它说没有安装mysqlrepair。这和运行 mysqlcheck -uUSER -pPASSWORD --repair --extended -A 一样吗【参考方案2】:

如果您不需要命令行工具,并且崩溃的原因很可能是 MYSQL 本身,请从 MYSQL 运行此命令来修复表:

REPAIR TABLE db_name.table_name;

【讨论】:

【参考方案3】:

用途:

mysqlcheck -u root -p --auto-repair --check --all-databases
(Password prompted)

输入root用户的MySQL密码,一切就完成了。

【讨论】:

【参考方案4】:

解决方案:

只需转到数据库并选择有问题的表选择“修复表”选项它将修复表中的崩溃条目并解决您的问题

【讨论】:

【参考方案5】:

是的,您可以从 phpmyadmin 修复表,它不会影响您的数据,您还可以使用“myisamchk”命令从 shell 修复表。

【讨论】:

【参考方案6】:

我从命令行使用这个:

mysqlcheck -u root -p --auto-repair --check --optimize --all-databases

【讨论】:

它给出:“错误:mysqlcheck 不支持多个相互矛盾的命令。” 对,我也遇到了同样的错误。删除 --optimize 然后它将起作用。【参考方案7】:

如果你有 ssh 访问服务器的权限,你可以登录然后执行:

df -h

你会看到这样的东西:

Filesystem            Size  Used Avail Use% Mounted on
/dev/cciss/xxxx      19G  825M   18G   5% /
/dev/cciss/xxxx     9.4G  4.8G  4.2G  54% /usr
/dev/cciss/xxxx      15G  1.8G   12G  13% /var
/dev/cciss/xxxx      19G   18G    0G   0% /opt
/dev/cciss/xxxx     4.7G  243M  4.3G   6% /tmp
/dev/cciss/xxxx     9.4G  1.5G  7.5G  17% /home

它是安装在/opt上的LAMP,在有一些可用磁盘空间后,您可以运行查询(如上所写):

Repair table db.mytablecrashed

然后你进入最后一行:

Table               OP        Msg_type  Msg_text
...
db.mytablecrashed   repair    status    OK

【讨论】:

以上是关于MySQL 说:#1194 - 表 'tablename' 被标记为崩溃,应该修复的主要内容,如果未能解决你的问题,请参考以下文章

sqoop导入奇怪的错误

P1194 买礼物

洛谷——P1194 买礼物

P1194 买礼物

luogu P1194 买礼物

luogu P1194 买礼物