Ubuntu 上使用 pgAdmin 管理 PostgreSQL 实操指南
一 安装与启动
-
方式一 APT 官方仓库安装(推荐)
- 导入 PostgreSQL 官方 APT 源并安装:
- sudo sh -c ‘echo “deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main” > /etc/apt/sources.list.d/pgdg.list’
- wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
- sudo apt update
- sudo apt install pgadmin4
- 首次配置与启动:
- 运行 sudo pgadmin4-setup,按提示设置 pgAdmin 的主密码。
- 访问地址:http://localhost/pgadmin4(桌面环境可直接运行命令:pgadmin4)。
-
方式二 pip 安装(灵活但需手动维护)
- 安装依赖与 pgAdmin4:
- sudo apt update
- sudo apt install python3-pip libpq-dev python3-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libffi-dev
- pip3 install --upgrade pip
- pip3 install pgadmin4
- 初始化与启动:
- 方式 A(常见):python3 ~/.local/lib/python3.*/site-packages/pgadmin4/setup.py
- 方式 B(虚拟环境):
- python3 -m venv ~/pgadmin4 && source ~/pgadmin4/bin/activate
- pip install --upgrade pip wheel pgadmin4
- 启动服务:
- 桌面模式:python3 ~/.local/lib/python3.*/site-packages/pgadmin4/pgAdmin4.py
- 或作为 WSGI 服务运行(配合 uWSGI/Nginx,见下文“进阶部署”)。
二 连接 PostgreSQL
- 准备数据库侧
- 启动 PostgreSQL:sudo systemctl start postgresql
- 设置 postgres 用户密码:sudo -u postgres psql -c “ALTER USER postgres WITH PASSWORD ‘your_password’;”
- 如需远程连接,编辑配置文件(版本号以实际为准,如 12/main):
- /etc/postgresql/12/main/postgresql.conf:将 listen_addresses 改为 ‘*’
- /etc/postgresql/12/main/pg_hba.conf:在末尾添加 host all all 0.0.0.0/0 md5
- 重启数据库:sudo systemctl restart postgresql
- 在 pgAdmin 中添加服务器
- 左侧 Servers 右键 → Create → Server
- General:输入名称(如:Local PostgreSQL)
- Connection:
- Host name/address:localhost 或服务器 IP
- Port:5432
- Maintenance database:postgres
- Username/Password:如 postgres/your_password
- Save 后即可查看库、表、执行 SQL。
三 常用管理操作
- 创建数据库:在左侧目标实例下右键 Databases → Create → Database,填写名称保存。
- 创建表:进入库 → Schemas → public → Tables → Create → Table,在 Columns 页签添加列并保存。
- 查询与编辑:顶部菜单 Tools → Query Tool,执行 INSERT/SELECT/UPDATE/DELETE 等语句。
- 备份与恢复:使用 pgAdmin 提供的备份/还原工具执行对象级或库级备份与恢复(适合日常运维)。
四 进阶部署与安全加固
- 远程访问 pgAdmin(桌面/服务器模式)
- 防火墙放行:sudo ufw allow 5050/tcp(若 pgAdmin 运行在 5050 端口)
- 访问地址:http://服务器IP:5050(桌面模式直接运行 pgadmin4 也会启动本地服务)
- 使用 Nginx + uWSGI 部署(生产推荐)
- 生成自签证书:
- sudo mkdir -p /etc/ssl/private
- sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048
-keyout /etc/ssl/private/server-key.pem -out /etc/ssl/private/server-cert.pem -subj “/CN=localhost”
- Nginx 反向代理示例(/etc/nginx/sites-available/default 的 server 块内):
- location / {
include uwsgi_params;
uwsgi_pass unix:/var/run/pgadmin4/pgadmin4.sock;
}
- 重启服务:sudo systemctl restart nginx 与 pgadmin4-web(或相应服务名)。
五 常见问题排查
- 无法远程连接数据库
- 核对 postgresql.conf 的 listen_addresses=‘*’、pg_hba.conf 的 host … 0.0.0.0/0 md5、以及云服务器安全组/本机防火墙是否放行 5432/tcp。
- 浏览器访问 pgAdmin 失败
- 确认服务已启动(桌面模式运行 pgadmin4;Web 模式检查端口 5050 或 /pgadmin4 路径与防火墙)。
- 认证失败
- 核对 pg_hba.conf 的认证方式(如 md5/peer/scram-sha-256)、数据库用户密码是否正确;必要时在 psql 中 ALTER USER 重置密码。
- 版本与路径差异
- 配置文件路径、Python 版本(如 python3.10)、site-packages 路径会随系统与版本变化,优先使用系统包管理器(APT)获取匹配版本。