站点整页只显示一句 Error establishing a database connection,后台同样打不开。这句话只说明 PHP 连不上数据库,具体原因要从账号、地址、服务三个方向查。

先用命令行验证账号能不能连

mysql -u 数据库用户 -p -h 数据库地址 -e "select 1;"

命令行能连而站点不能连,问题在配置文件;两边都连不上,就是数据库服务或网络的问题。

核对 wp-config.php 的四项

  • DB_NAME 是否拼写正确,多站点还要确认表前缀
  • DB_USER 与 DB_PASSWORD 是否匹配,密码里有特殊字符要确认引号没被截断
  • DB_HOST 用 localhost 还是 127.0.0.1,前者走 socket,后者走 TCP,行为不同
  • 数据库端口是否被改动,非默认端口要写成 地址:端口

服务本身是否正常

systemctl status mysql --no-pager
df -h

数据库进程挂了,或者磁盘写满导致无法写入,表现都是这一句。磁盘满时先清理日志再重启数据库,否则重启也起不来。

云数据库还要检查白名单,没把服务器 IP 加进去时,命令行同样连不上,这时改配置文件没有意义。

如果只有前台报错、命令行一切正常,优先看 wp-config.php 是否被误改,或者站点根目录下多了另一个同名配置文件被优先加载。

作者 9823189