这个问题通常可以归结为以下四大类原因:
-
数据库连接信息错误
- 位置:网站根目录下的
wp-config.php文件。 - 问题:里面定义的数据库名、用户名、密码或数据库主机不正确。这在网站迁移、更换主机或重置数据库密码后很常见。
- 位置:网站根目录下的
-
数据库服务未运行或崩溃
- 问题:服务器上的 MySQL/MariaDB 服务可能由于资源耗尽(内存、CPU)、配置错误或意外原因而停止运行。
-
数据库本身损坏
- 问题:数据库表可能因为插件/主题冲突、不当操作、服务器意外关机等原因而损坏。
-
服务器资源耗尽
- 问题:服务器的内存、CPU 或数据库连接数达到上限,导致无法建立新的连接。
解决办法(从简到繁,逐步排查)
请按照以下顺序进行排查,大多数情况下问题都能在前几步解决。
第1步:检查网站本身(最简单)
- 刷新页面:有时候这只是临时性问题,刷新一两次可能就好了。
- 联系主机提供商:如果您使用的是虚拟主机,这是最快捷的方法。直接联系他们的技术支持,告诉他们您遇到了“数据库连接错误”,他们通常能很快从后台查明原因(通常是数据库服务重启或服务器过载)。
第2步:检查数据库连接信息
适用场景:您在迁移网站、修改过数据库密码或更换主机后出现此问题。
-
找到
wp-config.php文件:通过 FTP/SFTP 或主机商提供的文件管理器,进入网站根目录,找到wp-config.php文件。 -
核对信息:打开此文件,找到以下四行代码:
php
复制下载
define('DB_NAME', 'database_name_here'); // 数据库名 define('DB_USER', 'username_here'); // 数据库用户名 define('DB_PASSWORD', 'password_here'); // 数据库密码 define('DB_HOST', 'localhost'); // 数据库主机(通常是 localhost) -
与主机商提供的信息比对:确保这里的每一项都与您的主机控制面板(如 cPanel)里数据库信息完全一致。特别注意:
DB_HOST有时可能是127.0.0.1或其他的,如your-site.mysql.db,请以主机商提供的为准。- 密码中是否有特殊字符。
-
修正并上传:如果发现错误,修改后保存并重新上传覆盖原文件。
第3步:重启数据库服务
适用场景:数据库服务可能意外停止。
-
如果您有服务器 root/管理员权限(VPS/独立服务器) :
-
Linux 系统:使用 SSH 登录服务器,执行以下命令:
bash
复制下载
# 对于 MySQL sudo systemctl restart mysql # 或者对于 MariaDB sudo systemctl restart mariadb -
Windows 服务器:在“服务”管理工具中找到 MySQL 或 MariaDB 服务,并重启它。
-
-
如果您是虚拟主机用户:您无法直接操作,请回到第1步,联系主机商客服让他们帮忙重启。
第4步:检查数据库表是否损坏
适用场景:网站突然崩溃,之前运行正常。
-
通过主机控制面板修复:
- 登录您的主机控制面板(如 cPanel)。
- 找到 “数据库” 部分的 “phpMyAdmin”。
- 进入 phpMyAdmin,选择您的网站数据库。
- 选中所有数据表,在下拉菜单中选择 “修复表”。
-
通过 SSH 修复(如果您有权限) :
-
使用 SSH 登录服务器,运行以下命令(请将
your_database_name和your_username替换为实际信息):bash
复制下载
mysqlcheck -u your_username -p --auto-repair --optimize your_database_name -
然后会提示您输入密码。
-
第5步:检查服务器资源
适用场景:网站在访问高峰期出现此错误。
-
检查磁盘空间:
- 通过 SSH 运行
df -h,查看磁盘使用率是否接近 100%。如果空间已满,需要清理文件。
- 通过 SSH 运行
-
检查内存和 CPU:
- 通过 SSH 运行
top或htop命令,查看 MySQL 进程是否占用了过高的内存或 CPU。
- 通过 SSH 运行
-
检查数据库连接数:
- 如果网站访问量很大,可能会超过 MySQL 的最大连接数限制。您需要联系主机商调整
max_connections参数,或者优化网站和数据库查询。
- 如果网站访问量很大,可能会超过 MySQL 的最大连接数限制。您需要联系主机商调整