WordPress数据库连接错误怎么修复?6个排查步骤从根源解决
在我们做外贸独立站的过程中你是否遇到过?打开自己的网站,看到一行白底黑字:
Error establishing a database connection
这大概是WordPress最让人无语的报错之一。整个网站全白了,前台后台都进不去,你甚至不知道从哪里开始查。
导致这个错误的常见原因就那几种:数据库停止运行、wp-config.php里的数据库配置信息填错了、数据库服务器挂了、数据库表损坏了、或者WordPress核心文件出了问题。听起来很多,但大多数情况下,问题出在第一条——数据库可能停止运行了,重启数据库就好。
按下面这个顺序排查,从最简单的开始,通常不用走到第五六步就能解决。
操作之前,先做备份
备份现有文件。
哪怕网站现在进不去,只要服务器还在跑,通过 FinalShell 或 宝塔文件管理器 把整个网站目录和数据库先备份一份。修复过程中一个小错误可能把情况弄得更糟,备份是你的保险,操作之前务必先做,最好养成习惯。
相关教程:FinalShell使用教程
第一步:先判断是前端问题还是前后端都挂了
打开浏览器,分别访问这两个地址:
- 网站首页:
https://你的域名.com - 后台登录页:
https://你的域名.com/wp-admin
如果首页显示”Error establishing a database connection”,但访问/wp-admin显示的是”一个或多个数据库表不可用,数据库可能需要修复”——这说明数据库能连上,但部分表损坏了,直接跳到第四步做数据库修复。
如果两个地址都显示数据库连接错误,说明WordPress根本连不上数据库,从第二步开始排查。
第二步:检查wp-config.php里的数据库配置
这是最高频的原因,先查这里。
用FinalShell或宝塔文件管理器找到网站根目录下的 wp-config.php 文件,打开编辑,找到这四行:
php
define( 'DB_NAME', '数据库名称' );
define( 'DB_USER', '数据库用户名' );
define( 'DB_PASSWORD', '数据库密码' );
define( 'DB_HOST', 'localhost' );
这四个值必须和你实际建站时创建的数据库完全一致,包括大小写。
怎么确认正确的数据库信息?
进入宝塔面板 → 数据库,找到你的WordPress数据库,点”管理”或查看备注,就能看到数据库名、用户名和密码。如果用的是共享主机,在cPanel → MySQL数据库那里查。
改完之后保存文件,刷新网站看是否恢复。
这一步解决了问题的话,原因通常是:迁移服务器之后忘记更新配置、宝塔重建数据库后密码变了、或者当初手打配置信息时有typo。
DB_HOST 那行一般填 localhost 就行,但有些主机环境要填具体的数据库服务器地址,如果不确定,去主机控制台查或者联系客服确认。
第三步:确认MySQL数据库服务是否在跑
配置没问题但还是报错?那可能是MySQL服务本身挂了。
宝塔面板用户:
登录宝塔 → 首页 → 软件商店 → 已安装,找MySQL,看状态是否为”运行中”。如果显示已停止,在设置里点”启动”,再刷新网站。
SSH命令行用户:
bash
# 查看MySQL服务状态
systemctl status mysql
# 如果显示inactive(dead),执行启动
systemctl start mysql
# 设置开机自动启动,避免下次重启又挂
systemctl enable mysql
如果MySQL启动时提示ERROR报错,需要根据报错信息修改数据库服务配置,然后重新执行启动命令。报错信息通常会指向具体问题,比如端口冲突、磁盘空间不足等。
MySQL挂掉的常见原因是什么?服务器内存不够用了——WordPress+MySQL+Nginx同时跑,内存吃紧的时候MySQL会被系统强制kill。如果重启MySQL之后过几小时又挂,大概率就是这个原因,解决办法是加内存或者开启Swap。
关于VPS内存不足的处理方法,可以参考:VPS Swap虚拟内存设置教程
第四步:尝试WordPress内置数据库修复
前两步都没问题,数据库服务也在跑,但还是报错?试试WordPress自带的修复功能。
操作方法:
打开 wp-config.php,在 /* That's all, stop editing! */ 这行之前加一行:
php
define( 'WP_ALLOW_REPAIR', true );
保存之后,浏览器访问:
https://你的域名.com/wp-admin/maint/repair.php
页面会显示两个按钮——”修复数据库”和”修复并优化数据库”,点”修复数据库”,等待完成。
如果是数据库表损坏导致的连接问题,这个修复工具通常能解决。也可以通过phpMyAdmin进入数据库,选择所有表,执行”修复表”操作。
修复完之后记得把刚才加的那行代码删掉,不然这个修复页面对任何人都是开放的,有安全隐患。
第五步:检查数据库用户权限
有时候问题不是配置错了,而是数据库用户对那个数据库没有足够的操作权限。这种情况相对少见,但迁移服务器之后有时会遇到。
进入宝塔面板 → 数据库,找到你的数据库,点”权限”,确认对应的数据库,宝塔面板默认是用户本地数据库。可点击顶部root密码修改密码来重新获取权限。
第六步:替换WordPress核心文件
排查到这一步,说明前面五步都没解决问题,可能是WordPress核心文件本身出了问题——被黑了、升级过程中文件损坏了、或者误删了什么。
从WordPress.org下载一个和你当前版本相同的WordPress安装包,解压之后删掉wp-content文件夹和wp-config-sample.php文件,确保不会覆盖你的主题、插件和现有配置,然后把剩余文件通过FTP或宝塔文件管理器上传到网站根目录,覆盖替换原有文件。
上传完成后清除浏览器缓存,重新访问网站。
六步走完还是修复不好?
如果上面六步都试过了还没解决,通常意味着以下情况之一:
数据库文件彻底损坏。这时候最稳妥的是恢复最近一次的备份数据,包括数据库和网站文件都要一并恢复,而不只是其中一个。宝塔用户进面板 → 数据库 → 找到你的数据库 → 有备份 → 选备份版本恢复。没有备份的话,联系主机商看他们是否有服务器级别的快照可以恢复。
可参考:宝塔面板备份恢复教程
服务器磁盘空间满了。磁盘跑满会导致MySQL无法写入日志而崩溃。SSH进服务器执行 df -h 查一下磁盘使用率,超过90%就得清理了。
主机环境故障。如果以上都没问题,试试联系主机商客服,让他们从服务端排查MySQL服务状态,有时候问题出在主机基础设施层面,自己能做的很有限。
避免再次发生
修好建议把这两个预防措施补上:
定期备份。宝塔用户可以在计划任务里设置定时备份数据库和网站文件,支持按周期自动执行,万一再出问题直接恢复备份,损失降到最低。建议每天备份数据库,每周备份完整网站文件,存档到远端存储或本地。
监控MySQL内存使用。如果你的VPS内存在2GB以下,MySQL在高负载时容易被系统OOM kill,考虑开启Swap或升级套餐。
关于WordPress常见故障的整体排查思路,可以参考:WordPress高CPU使用率修复教程
宝塔面板的网站备份恢复操作,可以参考:宝塔面板网站备份与恢复教程
VPS服务器常见故障排查汇总:VPS常见问题与解决方法
WordPress暴力破解防护避免数据库被攻击:WordPress登录限制与暴力破解防护教程