Mysql表修复失败:“无法创建新的tempfile”

时间:2015-07-28 18:41:09

标签: mysql

我运行一个WordPress网站。今天我发现wp_posts表崩溃了。当我尝试修复表时,出现以下错误:

REPAIR TABLE wp_posts;

error Can't create new tempfile: './[databasename]/wp_posts.TMD' 

repair  status    Operation failed

我尝试在shell中运行以下命令:

myisamchk -r -f wp_posts.MYI

error: File 'wp_posts.MYI' doesn't exist

你能告诉我还有什么办法可以解决这个问题吗?

6 个答案:

答案 0 :(得分:26)

原来" myisamchk -r -f wp_posts.MYI"是正确的解决方案。我只需要去数据文件夹。

在我的CentOS系统中,我将目录更改为/var/lib/mysql/[database]/并找到wp_posts.MYI

删除此文件后,修复成功。

答案 1 :(得分:8)

尝试使用以下命令sudo service mysql stop

停止服务

现在进行修复检查myisamchk -r -f -o /var/lib/mysql/DatabaseName/wp_posts

开始您的服务并享受它!

它对我有用

答案 2 :(得分:1)

尝试将以下行添加到wp-config.php文件中:

define( 'WP_ALLOW_REPAIR', true );

然后去: /wp-admin/maint/repair.php

这应该会生效并自动修复崩溃的表格。

答案 3 :(得分:0)

对于mariaDB以及OS和DB版本的其他组合,该文件也可能位于/config/databases/[DATABASE]下。
尝试以root身份运行 sudo su):

service mysql stop
myisamchk -rf /config/databases/[databasename]/wp_posts.MYI
service mysql start

答案 4 :(得分:0)

我也遇到了同样的麻烦。问题是.TMD文件已经存在,并且mysqlrepair拒绝覆盖它。我删除了.TMD文件,然后mysqlrepair发挥了著名作用。我不得不停止尝试使用崩溃表的过程,然后运行修复程序。

答案 5 :(得分:0)

当我在phpMyadmin中看到此错误时,我通过导航到/ var / lib / mysql / [database] /并删除了我要修复的表的TMD文件来解决该问题(不是MYI文件,如上面的解释)。

当我尝试删除MYI文件时,修复操作无效。