按下面顺序排查,通常几分钟即可恢复连接。
一 快速自检
二 常见原因与修复对照表
| 症状 | 可能原因 | 修复要点 |
|---|---|---|
| could not connect to server / 连接超时 | 防火墙未放行 5432 | firewalld:sudo firewall-cmd --permanent --add-port=5432/tcp && sudo firewall-cmd --reload;ufw:sudo ufw allow 5432/tcp |
| FATAL: no pg_hba.conf entry for host “x.x.x.x” | pg_hba.conf 未允许你的来源IP | 在 pg_hba.conf 增加规则:host all all <你的网段>/<掩码> md5(测试环境可用 0.0.0.0/0,生产请限定网段) |
| FATAL: database “xxx” does not exist | 维护数据库名填错 | 将“Maintenance database”改为已存在的库(如 postgres) |
| 仅本机可连,远程连不上 | postgresql.conf 监听地址不对 | 在 postgresql.conf 设置:listen_addresses = ‘0.0.0.0’(或服务器具体IP),并重启数据库 |
| SSL 相关错误 | 客户端启用 SSL 但服务器未配置 | 两端统一:要么服务器启用 SSL 并在 pgAdmin 勾选 SSL,要么两端都关闭 SSL |
| 客户端报 Utility file not found | pgAdmin 找不到 PostgreSQL 客户端工具 | 在 pgAdmin:File → Preferences → Paths → PostgreSQL Binary Path,指向服务器上 PostgreSQL 的 bin 目录(如 /usr/pgsql-<版本>/bin) |
| 版本不兼容 | pgAdmin 与 PostgreSQL 主版本差异大 | 升级/降级其中一方,保持兼容版本组合 |
以上要点涉及的关键配置与命令见下列参考。
三 关键配置文件与示例
四 安全与最佳实践