这个错误通常意味着 WordPress 无法连接到 MySQL 数据库,最常见的原因是配置文件信息错误或数据库服务未启动,建议优先核对 wp-config.php 中的账号密码与数据库状态。
先说结论:多数情况下是配置文件参数与实际数据库信息不匹配,或者数据库服务本身已停止运行。
- 先确认:wp-config.php 中的数据库名、用户名、密码是否与控制面板一致
- 先处理:检查 MySQL 服务状态,生产环境重启需谨慎,尝试重启数据库服务
- 再验证:刷新网站页面,确认错误是否消失或变为具体权限错误
命令速用版
如果你拥有服务器命令行权限,可以快速尝试重启数据库服务,这能解决因资源耗尽导致的临时宕机。
注意:生产环境直接重启 MySQL 会导致网站短暂不可用,请在低峰期操作。
# CentOS/RHEL (systemd)
systemctl restart mysqld
# 或
systemctl restart mariadb
# Ubuntu/Debian
systemctl restart mysql如果是宝塔面板,直接在软件商店找到 MySQL 点击重启即可。
为什么会这样
WordPress 本身不存储内容,所有文章、设置都存在 MySQL 数据库里。当 PHP 程序试图读取数据时,如果提供的“钥匙”(密码)不对,或者“仓库门”(数据库服务)没开,就会报这个错。核心原因通常集中在配置信息错误、服务宕机、权限不足或数据库损坏这几类。
分步处理
1. 核对 wp-config.php 配置
这是最高频的出错点。通过 FTP 或文件管理器打开网站根目录下的 wp-config.php,检查以下四行:
define('DB_NAME', '你的数据库名');
define('DB_USER', '你的数据库用户名');
define('DB_PASSWORD', '你的数据库密码');
define('DB_HOST', 'localhost');注意:密码若包含特殊字符(如@、$),建议先在面板重置为纯字母数字组合再试;DB_HOST 在某些环境下需改为 127.0.0.1。
2. 检查数据库用户权限
即使密码正确,如果用户没有操作权限也会连接失败。登录 phpMyAdmin 或面板数据库管理页,确认该用户对目标数据库拥有“所有权限”(SELECT, INSERT, UPDATE 等)。
3. 修复损坏的数据库
如果配置和服务都正常,可能是数据库表损坏。在 wp-config.php 中临时加入一行:
define('WP_ALLOW_REPAIR', true);然后访问 http://你的域名/wp-admin/maint/repair.php 点击修复,完成后务必删除刚才添加的代码。
4. 查看错误日志定位问题
若以上步骤无效,需通过日志排查具体错误原因。SSH 登录服务器后,使用以下命令实时查看日志:
# 宝塔面板常见错误日志路径
tail -f /www/wwwlogs/你的域名.error.log
# MySQL 通用错误日志路径 (具体路径视配置而定)
tail -f /var/log/mysql/error.log观察刷新网站时的日志输出,若出现"Access denied"则侧重检查权限,若出现"Can't connect"则侧重检查服务状态。
怎么验证是否生效
刷新网站首页,若能看到正常页面则修复成功。若仍然报错但提示变为"Access denied",说明连接已建立但权限不足,需回头检查用户权限设置。同时可查看服务器错误日志确认是否有持续的连接拒绝记录。
常见坑
- 空格与引号:复制密码时容易带入末尾空格,或误用中文引号,导致 PHP 解析失败。
- localhost 与 127.0.0.1:在某些 PHP 环境(如 phpEnv)中,localhost 可能走 socket 连接失败,改用 127.0.0.1 可解决。
- 资源限制:服务器内存不足会导致 MySQL 自动停止,若频繁重启后再次报错,需考虑升级配置。
- 隐藏字符:编辑 wp-config.php 时确保编码为 UTF-8 无 BOM,避免隐藏字符破坏常量定义。