温馨提示×

怎么在CentOS配置PgAdmin

小樊
48
2026-07-20 19:43:12
栏目: 智能运维

在 CentOS 上配置 PgAdmin(PgAdmin 4) 通常有两种常见方式:

  1. 通过 Python 虚拟环境安装(推荐,适用于 CentOS 7/8)
  2. 通过 RPM 仓库安装(适用于 CentOS 8+)

下面我以 CentOS 7 / CentOS 8 为例,给你一份完整、可执行的配置流程(包含 PostgreSQL + PgAdmin + Apache/Nginx 访问)。


一、前置条件

确保你已经安装并启动了 PostgreSQL

# 查看是否安装
psql --version

# 如未安装
sudo yum install -y postgresql-server postgresql-contrib
sudo postgresql-setup initdb
sudo systemctl start postgresql
sudo systemctl enable postgresql

二、安装 PgAdmin 4(Python 虚拟环境方式 ✅ 推荐)

1️⃣ 安装依赖

sudo yum install -y epel-release
sudo yum install -y python3 python3-pip python3-devel \
    libpq-devel gcc make

2️⃣ 创建 pgadmin 用户(不建议用 root)

sudo useradd -m pgadmin
sudo su - pgadmin

3️⃣ 创建 Python 虚拟环境

python3 -m venv pgadmin4
source pgadmin4/bin/activate

4️⃣ 安装 PgAdmin 4

pip install --upgrade pip
pip install pgadmin4

5️⃣ 配置 PgAdmin

创建配置文件:

mkdir -p ~/pgadmin4/config
cp pgadmin4/lib/python*/site-packages/pgadmin4/config.py ~/pgadmin4/config/

编辑配置:

vi ~/pgadmin4/config/config_local.py

写入:

import os

DATA_DIR = os.path.expanduser('~/.pgadmin')
LOG_FILE = os.path.join(DATA_DIR, 'pgadmin4.log')
SQLITE_PATH = os.path.join(DATA_DIR, 'pgadmin4.db')

SERVER_MODE = True

DEFAULT_SERVER = '0.0.0.0'
DEFAULT_SERVER_PORT = 5050

6️⃣ 初始化 PgAdmin

python pgadmin4/lib/python*/site-packages/pgadmin4/setup.py

设置 管理员邮箱和密码


7️⃣ 启动 PgAdmin

python pgadmin4/lib/python*/site-packages/pgadmin4/pgAdmin4.py

访问:

http://<服务器IP>:5050

三、配置为系统服务(可选但推荐)

1️⃣ 创建 systemd 服务

sudo vi /etc/systemd/system/pgadmin.service

内容:

[Unit]
Description=PgAdmin4
After=network.target

[Service]
User=pgadmin
WorkingDirectory=/home/pgadmin/pgadmin4
ExecStart=/home/pgadmin/pgadmin4/bin/python \
    /home/pgadmin/pgadmin4/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py

Restart=always

[Install]
WantedBy=multi-user.target

⚠️ 注意:Python 路径版本按实际情况修改


2️⃣ 启动服务

sudo systemctl daemon-reload
sudo systemctl start pgadmin
sudo systemctl enable pgadmin

四、反向代理(Apache / Nginx)

✅ Apache 示例

sudo yum install -y httpd
<VirtualHost *:80>
    ServerName pgadmin.example.com

    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:5050/
    ProxyPassReverse / http://127.0.0.1:5050/
</VirtualHost>
sudo systemctl start httpd

五、防火墙放行

sudo firewall-cmd --add-port=5050/tcp --permanent
sudo firewall-cmd --reload

六、常见问题

❌ 访问 403 / 无法连接

  • 检查 SERVER_MODE = True
  • 检查防火墙
  • PostgreSQL 是否允许远程连接 (pg_hba.conf)

❌ PostgreSQL 连接失败

编辑:

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

添加:

host all all 0.0.0.0/0 md5

编辑:

sudo vi /var/lib/pgsql/data/postgresql.conf
listen_addresses = '*'

重启 PostgreSQL:

sudo systemctl restart postgresql

七、总结

✅ 推荐方案:
PgAdmin 4 + Python 虚拟环境 + systemd + Apache/Nginx

如果你愿意,我可以:

  • 给你 CentOS 7 / 8 专用一键脚本
  • 帮你 排查具体报错
  • 教你 PgAdmin 连接远程 PostgreSQL

你现在是 CentOS 几? 是否已安装 PostgreSQL?

0