温馨提示×

pgadmin连不上centos咋回事

小樊
51
2026-10-14 23:35:49
栏目: 智能运维

“pgAdmin 连不上 CentOS 上的 PostgreSQL”这个问题很常见,一般不是 pgAdmin 本身的问题,而是 CentOS 端 PostgreSQL 没放开、网络不通或配置不对。下面按最常见原因给你排查一遍。


一、先确认:你连的是哪一层

  • pgAdmin 在 Windows / Mac
  • PostgreSQL 装在 CentOS 上
  • 通过 IP + 端口(默认 5432) 连接

如果是这样,往下看。


二、最常见的原因(90% 在这里)

1️⃣ PostgreSQL 只允许本机连接

CentOS 上 PostgreSQL 默认 只监听 localhost

检查监听

ss -ntlp | grep 5432

如果看到:

127.0.0.1:5432

说明 只能本机连

修改 postgresql.conf

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

(版本可能不同,比如 13 / 14)

改成:

listen_addresses = '*'

2️⃣ pg_hba.conf 没允许远程 IP

即使监听了,也得允许你的客户端 IP

编辑 pg_hba.conf

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

加一行(示例):

host    all    all    0.0.0.0/0    md5

或只允许你电脑 IP:

host    all    all    192.168.1.100/32    md5

3️⃣ 防火墙没开 5432

CentOS 默认 firewalld 是开着的

firewall-cmd --list-ports

如果没有 5432:

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

4️⃣ SELinux 拦截(CentOS 特有)

getsebool -a | grep postgres

如果看到:

postgresql_can_network_connect --> off

执行:

setsebool -P postgresql_can_network_connect on

5️⃣ 你连的用户不允许远程

比如 postgres 用户默认只能本地

确认:

SELECT usename, host FROM pg_user;

或新建一个远程用户:

CREATE USER remote WITH PASSWORD '123456';
GRANT ALL PRIVILEGES ON DATABASE testdb TO remote;

三、pgAdmin 里该怎么填

项目 示例
Host CentOS IP(如 192.168.1.50)
Port 5432
Username remote
Password 123456
Maintenance DB postgres

四、快速排查顺序(建议你照着做)

  1. ping CentOS_IP
  2. telnet IP 5432
  3. ss -ntlp | grep 5432
  4. 看 postgresql.conf
  5. 看 pg_hba.conf
  6. 防火墙 & SELinux

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

你可以贴一下:

  • CentOS 版本
  • PostgreSQL 版本
  • postgresql.conf 和 pg_hba.conf 相关配置
  • pgAdmin 报错截图或文字

我可以直接告诉你 哪一行错了。

0 踩