我运行一个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
你能告诉我还有什么办法可以解决这个问题吗?
答案 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文件时,修复操作无效。