站点整页只显示一句 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 是否被误改,或者站点根目录下多了另一个同名配置文件被优先加载。