WordPress提示修复数据库:define( ‘WP_ ALLOW_ REPAIR’, true);

2023年11月17日11:08:15 发表评论 0

用 WordPress 做博客网站,会遇到访问流量大或者被攻击的情况,尤其是高清图片类的站点有时候 ECS 服务器撑不住了数据库就挂了。今天怀音街博客就遇到了这个问题,网站打不开,提示:建立数据库连接时出错“Error establishing a database connection”。

WordPress提示修复数据库:define( ‘WP_ ALLOW_ REPAIR’, true);

 

WordPress提示错误分析

开始以为是DDoS攻击,因为在今年8月份怀音街遇到一次攻击的情况,具体的攻击排查和解决详情可以查看《网站被攻击了怎么办?记录阿里工单筛选并屏蔽异常IP》。但是这次情况和上次不一样,继续往下看。

这次网站主页和后台都打不开,网站主页提示“建立数据库连接时出错”。

 

修复数据库

这个看起来是数据库无法连接、服务未启动或其他的数据库故障,这个问题原因挺多的,一下子也摸不到头绪。继续刷新页面,打开后台页面,出现了需要修复数据库的提示,如下图:

WordPress提示修复数据库:define( ‘WP_ ALLOW_ REPAIR’, true);

按照指引,点击“修复数据库”(操作前,请先备份数据库!),继续提示如下图:

WordPress提示修复数据库:define( ‘WP_ ALLOW_ REPAIR’, true);

继续按指引操作,在网站根目录下 wp-config.php 文件,在“/* 好了!请不要再继续编辑。请保存本文件。使用愉快! */”前面,添加下面的代码:

  1. define( 'WP_ ALLOW_ REPAIR', true);

将 wp-config.php 文件回传到根目录覆盖源文件,然后刷新怀音街首页。继续提示“有些数据表无效”,需要继续修复并优化数据库,如下图:

WordPress提示修复数据库:define( ‘WP_ ALLOW_ REPAIR’, true);

点击“修复并优化数据库”,等了几分钟后继续提示“部分数据库问题无法修复”,让寻求别人支持。如下图:

WordPress提示修复数据库:define( ‘WP_ ALLOW_ REPAIR’, true);

 

以上操作注意事项:

1、在操作之前,请务必先备份好数据库,以防万一。

2、在“修复并优化数据库”时,如果第一次没有生效,需要多次尝试才能完成。

3、修复数据库完成后,将刚刚添加在 wp-config.php 中的代码删除,以防他人滥用本页面。

后来无意间重启了服务器,然后又刷新了一下博客页面,前台网页已经可以正常访问了。

 

问题总结:

虽然解决了燃眉之急,但是问题最终的原因还是没有找到。后来怀疑是ECS服务器磁盘空间满了导致的,查看服务器磁盘使用情况,果然占用了98%(总共40G),如下图:

WordPress提示修复数据库:define( ‘WP_ ALLOW_ REPAIR’, true);

问题的根节总算找到,由于磁盘空间占满,数据库写入数据出了问题。

按理说,个人博客不会用掉这么多的磁盘空间,怀音街博客又没有存放视频和大图片等文件。只能一步步排查大文件并清理优化磁盘空间,具体的排查和清理过程可以查看《解决WordPress网站占满Linux服务器磁盘空间的方法(日志)》。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: