“pgAdmin 连不上 CentOS 上的 PostgreSQL”这个问题很常见,一般不是 pgAdmin 本身的问题,而是 CentOS 端 PostgreSQL 没放开、网络不通或配置不对。下面按最常见原因给你排查一遍。
如果是这样,往下看。
CentOS 上 PostgreSQL 默认 只监听 localhost
ss -ntlp | grep 5432
如果看到:
127.0.0.1:5432
说明 只能本机连
vi /var/lib/pgsql/15/data/postgresql.conf
(版本可能不同,比如 13 / 14)
改成:
listen_addresses = '*'
即使监听了,也得允许你的客户端 IP
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
CentOS 默认 firewalld 是开着的
firewall-cmd --list-ports
如果没有 5432:
firewall-cmd --add-port=5432/tcp --permanent
firewall-cmd --reload
getsebool -a | grep postgres
如果看到:
postgresql_can_network_connect --> off
执行:
setsebool -P postgresql_can_network_connect on
比如 postgres 用户默认只能本地
确认:
SELECT usename, host FROM pg_user;
或新建一个远程用户:
CREATE USER remote WITH PASSWORD '123456';
GRANT ALL PRIVILEGES ON DATABASE testdb TO remote;
| 项目 | 示例 |
|---|---|
| Host | CentOS IP(如 192.168.1.50) |
| Port | 5432 |
| Username | remote |
| Password | 123456 |
| Maintenance DB | postgres |
ping CentOS_IPtelnet IP 5432ss -ntlp | grep 5432postgresql.confpg_hba.conf你可以贴一下:
postgresql.conf 和 pg_hba.conf 相关配置我可以直接告诉你 哪一行错了。