记录一次修复数据库

发布于 2021-10-24  381 次阅读


今天起床,打开网站一看,显示数据库连接失败,我以为又和之前一样,Mariadb服务挂了。所以用SSH工具登陆到了服务器上。一查,果然是挂了。于是我运行

# systemctl restart mariadb

于是数据库服务成功启动了,我也可以用数据库管理工具来连接到wordpress库。可就在我刷新网页后,还是连接不上数据库。

根据之前几次修Wordpress的经验,我打开Wordpress的调试模式,也就是在网站根目录下的wp-config.php里将WP_DEBUG设置为true。随后再一次访问后台,这一次出现了提示,Wordpress要求我修复数据库,我按照提示在 wp-config.php 里加入了:

define('WP_ALLOW_REPAIR', true);

保存后刷新页面,之后就可以让它自动修复了,然而它修复了,却没有完全修复。

之后我在网上找到了一个方法,成功地修复了wp_options数据表。方法如下:

1、确定数据库的位置,位置一般可以在数据库配置文件里找到,我的配置文件是/etc/my.cnf.d/mariadb-server.cnf。

里面的datadir标注了数据库位置。

2、停止数据库服务,我这里使用的是:

# systemctl stop mariadb

3、定位到损坏的表所在的文件夹,运行myisamchk -r xxx.MYI,其中xxx是受损表的名字。如果不行就再加上-f参数。我这里使用的命令是:

# myisamchk -r wp_options.MYI
请忽略掉下面心急打错的“mariab”

重新启动数据库后,访问网站就正常了,但是还有一个小问题,我之前添加的cookie插件没有显示出来,以及我忘记把调试模式关了,直到我写这篇文章时才发现。

最后更新于 2021-10-24