WordPress提示修复数据库:define( ‘WP_ ALLOW_ REPAIR’, true);
用 WordPress 做博客网站,会遇到访问流量大或者被攻击的情况,尤其是高清图片类的站点有时候 ECS 服务器撑不住了数据库就挂了。今天里维斯社博客就遇到了这个问题,网站打不开,提示:建立数据库连接时出错“Error establishing a database connection”。
WordPress提示错误分析
开始以为是DDoS攻击,因为在今年8月份里维斯社遇到一次攻击的情况,具体的攻击排查和解决详情可以查看《网站被攻击了怎么办?记录阿里工单筛选并屏蔽异常IP》。但是这次情况和上次不一样,继续往下看。
这次网站主页和后台都打不开,网站主页提示“建立数据库连接时出错”。
修复数据库
这个看起来是数据库无法连接、服务未启动或其他的数据库故障,这个问题原因挺多的,一下子也摸不到头绪。继续刷新页面,打开后台页面,出现了需要修复数据库的提示,如下图:
按照指引,点击“修复数据库”(操作前,请先备份数据库!),继续提示如下图:
继续按指引操作,在网站根目录下 wp-config.php 文件,在“”前面,添加下面的代码:
- define( 'WP_ ALLOW_ REPAIR', true);
将 wp-config.php 文件回传到根目录覆盖源文件,然后刷新里维斯社首页。继续提示“有些数据表无效”,需要继续修复并优化数据库,如下图:
点击“修复并优化数据库”,等了几分钟后继续提示“部分数据库问题无法修复”,让寻求别人支持。如下图:
以上操作注意事项:
1、在操作之前,请务必先备份好数据库,以防万一。
2、在“修复并优化数据库”时,如果第一次没有生效,需要多次尝试才能完成。
3、修复数据库完成后,将刚刚添加在 wp-config.php 中的代码删除,以防他人滥用本页面。
后来无意间重启了服务器,然后又刷新了一下博客页面,前台网页已经可以正常访问了。
问题总结:
虽然解决了燃眉之急,但是问题最终的原因还是没有找到。后来怀疑是ECS服务器磁盘空间满了导致的,查看服务器磁盘使用情况,果然占用了98%(总共40G),如下图:
问题的根节总算找到,由于磁盘空间占满,数据库写入数据出了问题。
按理说,个人博客不会用掉这么多的磁盘空间,里维斯社博客又没有存放视频和大图片等文件。只能一步步排查大文件并清理优化磁盘空间,具体的排查和清理过程可以查看《WordPress网站占满Linux服务器磁盘空间,解决和排查方法》。
80%的人都看过的文章
- WordPress首页不显示某分类文章(3种方法)
- 如何修复 WordPress 中的500内部服务器错误
- WordPress如何屏蔽IP访问?
- WordPress如何创建自定义主页
- WordPress 根据访问设备使用不同的主题
- WordPress网站占满Linux服务器磁盘空间,解决和排查方法
- WordPress文章显示字数和阅读时间
- 增强WordPress安全性的10个Nginx规则