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

问题描述 投票:8回答:6

我运行一个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

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

mysql
6个回答
26
投票

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

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

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


8
投票

尝试使用以下命令sudo service mysql stop停止服务

现在做修理检查myisamchk -r -f -o /var/lib/mysql/DatabaseName/wp_posts

开始您的服务,享受它!

这个对我有用


1
投票

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

define( 'WP_ALLOW_REPAIR', true );

然后转到:/wp-admin/maint/repair.php

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


0
投票

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

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

0
投票

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


0
投票

当我在phpMyadmin中看到这个错误时,我通过导航到/ var / lib / mysql / [database] /并删除我试图修复的表的TMD文件来解决它(不是上面说明中所述的MYI文件) )。

当我尝试删除MYI文件时,修复操作不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.