表 '/mysql-tmp/#sql_78b5_0.MYI' 的密钥文件不正确;或“从存储引擎得到错误 x”

Posted

技术标签:

【中文标题】表 \'/mysql-tmp/#sql_78b5_0.MYI\' 的密钥文件不正确;或“从存储引擎得到错误 x”【英文标题】:Incorrect key file for table '/mysql-tmp/#sql_78b5_0.MYI'; or "Got error x from storage engine"表 '/mysql-tmp/#sql_78b5_0.MYI' 的密钥文件不正确;或“从存储引擎得到错误 x” 【发布时间】:2012-12-30 08:24:35 【问题描述】:

我将 CodeIgniter 框架用于我的一个 Web 应用程序。

我在开发环境中运行该应用没有任何问题,而且在大多数情况下,我的应用在生产环境中运行良好。

但是,我和我的用户遇到了一些关于数据库的零星错误。

    表'/mysql-tmp/#sql_78b5_0.MYI'的密钥文件不正确; 存储引擎出现错误 28 存储引擎出现错误 -1

数据库错误消息如下所示:

ERROR -2013-01-15 13:56:35 --> 数据库错误消息:

错误编号: 126

表'/mysql-tmp/#sql_78b5_0.MYI'的密钥文件不正确; 尝试修复它

选择 bw.bw_id ,bw.wod_date ,CASE WHEN ifnull(bw.simple_title,'') = '' THEN 'No name given' ELSE simple_title END AS simple_title ,COUNT(mw.bw_id) AS 记录的_wod 从 box_wod bw 左加入 member_wod mw ON bw.bw_id = mw.bw_id 和 mw.member_id = 15 在哪里 box_id = 3 通过...分组 bw.bw_id、bw.wod_date、simple_title、mw.bw_id 订购方式 bw.wod_date DESC

文件名:/hermes/.../box_model.php

线 数量:400

我对答案的搜索都指向一个路径:可用磁盘空间。

我试图向我的托管服务提供商指出这一点,但他们声称这不是问题:

我已检查您报告的问题。没有 MySQL 服务器问题。一世 已检查提供的错误日志,似乎与 你的数据库表。目前,您的网站在没有 任何问题。请检查您的数据库表。

“表'/mysql-tmp/#sql_78b5_0.MYI'的密钥文件不正确;”如果你 有任何其他问题,请更新支持控制台。

我已经对我的所有桌子进行了修复;我的数据库大约是一兆字节。我仍然遇到这个问题。

是否有任何其他设置问题(CI 或我的数据库)可能导致此问题?

CI 框架是否会创建可能损坏的临时表?

我确实编写了我的 SQL 语句,但在我发出它们之前它们都可以工作。

我只是想了解什么(除了磁盘空间)会导致这个问题。

【问题讨论】:

【参考方案1】:

简而言之,答案是物有所值。

我的托管服务提供商在服务器上发生了一些事情。在支持下来回走了很多次后,他们擦干了这个问题。此外,它们不会让用户访问存储您的代码的服务器;所以除了在我的开发机器上运行良好的代码之外,我没有什么可以解决的。

因此,我选择搬到新的托管服务提供商,问题就消失了。

【讨论】:

以上是关于表 '/mysql-tmp/#sql_78b5_0.MYI' 的密钥文件不正确;或“从存储引擎得到错误 x”的主要内容,如果未能解决你的问题,请参考以下文章

表 '/tmp/#sql_3c51_0.MYI' 的密钥文件不正确;尝试修复它[重复]

得到维度处理错误;表 '/var/tmp/mysql.VArBWG/#sql_aa0_8.MYI' 的密钥文件不正确;尝试修复它

搞定了100分!两个问题! sqlserver

BC div2补题以及 复习模除 逆元__BestCoder Round #78 (div.2)

如何始终只显示 SQL 查询结果表中相同值的第一个值?

sql 计算学生水平。 Level_表通常是准确的,您也可以根据收到的积分数量来计算0-29是fres