这两天网站运行时多次发现不加载显示文章内容,而网页架构、评论等都是正常的,登录 phpMyAdmin 查看 MySQL 数据库,发现 wp_posts 表状态显示为:使用中…,也就是说 wp_posts表崩溃了,或者说是锁死了。

这种情况下,执行“优化表”或“修复表”时,均报错:错误,无法创建新的临时文件:’./yseeker/wp_posts.TMD’。但可以执行“分析表”和“检查表”,执行后表文件正常,网站可以正常访问,但过一段时间又发生 wp_posts 表崩溃的现象。而且一执行“优化表”或“修复表”,表就崩溃。显然 wp_posts 存在着错误。

参照网上的一些方法,我尝试了这种操作

1、打开 Shell 软件,登录服务器;

2、运行以下命令:myisamchk -r -f wp_posts.MYI

报错:’wp_posts.MYI’文件不存在。

3、FTP 登录到服务器,找到 wp_posts.MYI 文件所在地,/var/lib/mysql/yseeker/wp_posts.MYI,删除此文件(删除前请备份此文件)。

4、重新在 Shell 下运行以下命令:myisamchk -r -f wp_posts.MYI

仍然报错:’wp_posts.MYI’文件不存在。

5、把 wp_posts.MYI 恢复,并在 Shell 下运行以下命令:myisamchk -r -f /var/lib/mysql/yseeker/wp_posts.MYI

显示修复成功。

注:所以我认识如果在第2步直接执行5的操作步骤就可以了。

然后,我们登录 phpMyAdmin ,尝试在 wp_posts 表中使用“优化表”或“修复表”功能(这样肯定比在 Shell 中执行方便直观的多),又发生了新的错误:Table ‘wp_posts’ is read only. 不能进行修复操作。

我在 FTP 中对 yseeker 文件夹中的所有文件设置777权限也不行。

又搜索网络上的这个方法,使用 mysqladmin 命令进修修改。

1、首先,找到 mysqladmin 命令所在位置,一般都在 mysql/bin 下面,看安装时设定的文件夹,像我的在 /usr/bin/。

2、运行如下命令:/usr/bin/mysqladmin -u root -p flush-tables

3、按提示输入 root 账号的密码,没有任何提示,但重新打开 wp_posts 时,一切正常了。

用的是阿里云的服务器,系统和应用是自己架设的,所以出了问题,阿里的工程师们并不负责解决,我们也理解。所以建议普通用户,还是使用阿里云的虚拟主机吧。这次他们推出的轻量级服务器,倒是完成了系统和应用的安装,选择 Linux 系统和 WordPress 应用,及 MySQL 数据库,可以方便地使用,一键绑定域名,部署 https 访问,不过 FTP 要自己架设。

历史上的今天: