温馨提示×

ubuntu pgadmin为什么连不上

小樊
39
2026-10-18 10:02:04
栏目: 智能运维

在 Ubuntu 上 PgAdmin 连不上 PostgreSQL,通常是下面几类原因导致的。我按「最常见 → 少见」给你一个排查清单,你可以一条条对。


一、PostgreSQL 服务没启动(最常见)

先确认数据库本身在跑:

sudo systemctl status postgresql

如果没启动:

sudo systemctl start postgresql
sudo systemctl enable postgresql

二、PgAdmin 连接方式搞错(本地 vs 远程)

1️⃣ 本地连接(localhost)

  • Host:127.0.0.1 或 localhost
  • Port:5432
  • Username:postgres(默认)

2️⃣ 远程连接(另一台服务器)

  • 必须开放 5432 端口
  • 云服务器还要放行 安全组

三、PostgreSQL 不允许连接(pg_hba.conf)

这是连不上但服务在跑的高频原因。

编辑配置:

sudo nano /etc/postgresql/*/main/pg_hba.conf

确保有类似:

# 本地
host    all    all    127.0.0.1/32    md5
# 远程(示例)
host    all    all    0.0.0.0/0       md5

改完重启:

sudo systemctl restart postgresql

四、PostgreSQL 只监听本地(postgresql.conf)

检查监听地址:

sudo nano /etc/postgresql/*/main/postgresql.conf

确认:

listen_addresses = 'localhost'   # 本地
# 或
listen_addresses = '*'           # 远程

重启 PostgreSQL。


五、密码问题(不是系统密码)

PgAdmin 连的是 数据库用户密码,不是 Ubuntu 密码。

重置 postgres 密码:

sudo -u postgres psql
ALTER USER postgres PASSWORD '新密码';

六、PgAdmin 版本问题

  • PgAdmin 4(Web 版)
    sudo /usr/pgadmin4/bin/setup-web.sh
    
  • 桌面版 确认是否真的启动成功(看系统托盘)

七、防火墙 / 端口

sudo ufw allow 5432

云服务器还要在控制台放行。


快速自查命令(复制即可)

sudo systemctl status postgresql
ss -tnlp | grep 5432
psql -U postgres -h 127.0.0.1 -c '\l'

你可以直接告诉我:

  1. PgAdmin 是桌面版还是网页版?
  2. 本地连还是远程连?
  3. 报错信息原文(最重要)

我可以直接帮你定位到那一行配置。

0 踩