温馨提示×

centos pgadmin为何连不上

小樊
50
2026-09-21 11:08:51
栏目: 智能运维

在 CentOS 上 pgAdmin 连不上 PostgreSQL,常见原因基本集中在 服务、网络、认证、防火墙、配置 这几类。下面按“最常见 → 较少见”的顺序给你排查清单。


一、PostgreSQL 服务本身没起来(最常见)

1️⃣ 检查 PostgreSQL 是否在运行

systemctl status postgresql

或(老版本)

service postgresql status

如果没启动:

systemctl start postgresql
systemctl enable postgresql

二、pgAdmin 连的是 localhost,但 PostgreSQL 只监听 IPv6 / Unix socket

2️⃣ 查看监听地址

ss -lntp | grep 5432

正常应看到:

LISTEN 0 128 0.0.0.0:5432

如果只有:

127.0.0.1:5432

那只能本机连。

修改监听地址

编辑:

vi /var/lib/pgsql/data/postgresql.conf

(版本不同路径可能不同)

listen_addresses = '*'

然后重启:

systemctl restart postgresql

三、pg_hba.conf 不允许连接(非常常见)

3️⃣ 查看访问控制

vi /var/lib/pgsql/data/pg_hba.conf

如果是本地 pgAdmin(同一台机器):

host    all    all    127.0.0.1/32    md5
host    all    all    ::1/128         md5

如果 pgAdmin 在 另一台机器:

host    all    all    0.0.0.0/0    md5

(生产环境建议限制 IP)

修改后:

systemctl reload postgresql

四、防火墙挡住了 5432 端口

4️⃣ CentOS 防火墙检查

firewall-cmd --list-all

如果没有 5432:

firewall-cmd --add-port=5432/tcp --permanent
firewall-cmd --reload

云服务器还要看 安全组。


五、pgAdmin 填写信息错误

5️⃣ 常见填错点

项目 正确示例
Host localhost 或服务器 IP
Port 5432
Username postgres
Password 安装时设置的
Maintenance DB postgres

⚠️ CentOS 上 PostgreSQL 默认用户是 postgres,不是 root。


六、SELinux 限制(CentOS 特有)

getenforce

如果是 Enforcing,可临时测试:

setenforce 0

如果这样能连,说明是 SELinux 策略问题。


七、pgAdmin 版本问题

  • pgAdmin 4 必须浏览器访问
  • 老版本 pgAdmin III 已不支持新 PG

确认:

pgadmin4 --version

八、快速自检命令(复制可用)

systemctl status postgresql
ss -lntp | grep 5432
firewall-cmd --list-all
psql -U postgres -h 127.0.0.1

九、如果你愿意,我可以直接帮你定位

你可以把下面信息发我:

  1. pgAdmin 报错原文
  2. ss -lntp | grep 5432 输出
  3. pg_hba.conf 相关行
  4. 是 本机 pgAdmin 还是远程

我可以直接告诉你是哪一步卡住。

0 踩