0

当我尝试运行查询时,它给了我错误,例如“表'/tmp/#sql_6212_0.MYI'的密钥文件不正确;尝试修复它”。

当我用谷歌搜索它时,我在 urls 下面找到并尝试通过在 tmp 文件夹中留出一些空间来解决,但得到了相同的结果。

我无法修复它,因为表是 Innodb。

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

进行多个连接时,tmp 表的 MySQL 不正确的密钥文件

任何帮助表示赞赏。

4

1 回答 1

0

如果修复失败是因为 /tmp-Partition 太小,那是因为 MySQL 需要空间来重建索引。您可以尝试使用 myisamchk 修复表并从重建中排除单个索引。

首先获取表的索引的概述和描述:

myisamchk --description tablename

然后仅包含您​​要重建的那些索引。(更改到服务器上的数据库目录以发出以下命令。)

myisamchk --recover -verbose --keys-used=7 tablename

如果您有 4 个索引并且只想重建前 3 个索引,则使用带有数字 7 的选项“--keys-used”,即二进制 0111 的十进制。

如果 myisamchk 发现任何错误,可选择使用 -f (--force) 自动执行修复操作。

MySQL 停用排除的索引。

于 2015-08-13T11:27:34.890 回答