Skip to content

pgAdmin工具指南

什么是pgAdmin

pgAdmin是PostgreSQL最受欢迎、功能最完备的开源管理与开发平台。它提供完整的图形化界面用于管理PostgreSQL数据库,即便不熟悉命令行工具的用户,也能便捷完成数据库管理操作。

pgAdmin版本

版本描述成本
pgAdmin 4现行版本,基于Python开发免费
pgAdmin 3旧版本,已停止维护免费

核心功能

  • 数据库管理:创建、编辑、删除数据库、表及其他数据库对象
  • SQL编辑器:编写并执行SQL查询,支持语法高亮
  • 数据导入导出:支持多种格式数据导入,可导出查询结果
  • 备份恢复:提供简易的数据库备份与还原功能
  • 可视化查询构建器:无需编写SQL即可构建查询语句
  • 性能监控:监控数据库性能与查询执行情况
  • 实体关系图表:可视化展示数据库模式结构
  • 连接向导:简化数据库服务器的连接配置流程
  • 插件支持:可通过插件扩展工具功能

安装pgAdmin

安装方式

方式一:桌面应用程序

Windows系统
  1. 从官网下载安装包:https://www.pgadmin.org/download/pgadmin4-windows/
  2. 运行安装程序
  3. 按照安装向导完成配置
  4. 从开始菜单启动pgAdmin
macOS系统
bash
# 方式1:官网下载
# 从pgadmin.org下载.dmg安装包

# 方式2:使用Homebrew安装
brew install --cask pgadmin4
Linux系统
bash
# Ubuntu/Debian系列
# 添加pgAdmin软件源
curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add -
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
sudo apt update
sudo apt install pgadmin4-desktop

# Fedora/RHEL系列
sudo dnf install pgadmin4

方式二:网页应用程序

bash
# 使用Docker部署
docker pull dpage/pgadmin4

docker run --name pgadmin4-container \
  -p 80:80 \
  -e PGADMIN_DEFAULT_EMAIL=admin@pgadmin.org \
  -e PGADMIN_DEFAULT_PASSWORD=admin \
  -d dpage/pgadmin4

方式三:Python Wheel包安装

bash
# 安装Python依赖
pip install flask flask-sqlalchemy flask-login

# 下载并安装pgAdmin Wheel包
pip install pgadmin4-*.whl

安装验证

bash
# 查看pgAdmin版本
pgadmin4 --version

# 或直接启动pgAdmin
pgadmin4

pgAdmin入门使用

启动pgAdmin

桌面模式

  1. 在应用列表中找到pgAdmin
  2. 点击启动程序
  3. 等待初始化完成(首次启动可能需要数秒)

网页模式

  1. 打开浏览器
  2. 访问地址:http://localhost:80
  3. 使用配置的账号密码登录

初始配置

步骤1:设置主密码

首次启动时,系统会要求设置主密码:

  1. 输入安全的主密码
  2. 确认密码
  3. 该密码用于保护已保存的服务器连接信息

步骤2:仪表板总览

pgAdmin仪表板展示以下信息:

  • 服务器状态
  • 数据库活动
  • 近期查询记录
  • 系统统计指标

连接PostgreSQL服务器

添加新服务器

步骤1:打开服务器注册界面

  1. 右键单击浏览器树中的「服务器」
  2. 选择「新建」→「服务器」

步骤2:常规选项卡

填写连接基础信息:

字段描述示例
名称服务器的显示名称本地PostgreSQL
注释可选的描述信息开发环境服务器

步骤3:连接选项卡

字段描述示例
主机名服务器地址localhost
端口PostgreSQL服务端口5432
用户名PostgreSQL登录用户postgres
密码用户登录密码********

步骤4:SSL选项卡

根据服务器配置调整SSL参数:

  • 使用SSL:本地开发可设为禁用
  • SSL模式:生产环境建议设为强制要求

步骤5:高级选项卡

配置进阶参数:

  • 数据库限制:限定可见的数据库列表
  • 插槽名称:用于数据库复制场景
  • 创建角色:自动创建登录角色

连接远程服务器

  1. 确保PostgreSQL允许远程连接
  2. 配置防火墙放行对应端口
  3. 添加服务器时填写远程IP或主机名
  4. 测试连接是否通畅
bash
# 确认PostgreSQL监听所有网卡
# 配置文件postgresql.conf
listen_addresses = '*'

# 配置客户端认证规则
# 配置文件pg_hba.conf
host    all             all             0.0.0.0/0            md5

pgAdmin界面总览

主窗口组件

1. 浏览器树

位于界面左侧,以层级结构展示:

  • 服务器
  • 数据库
  • 模式
  • 其他数据库对象

2. 查询工具

核心SQL编辑区域,具备以下特性:

  • 语法高亮
  • 自动补全
  • 代码折叠
  • 查询历史记录

3. 输出面板

展示查询结果与系统消息,包含子面板:

  • 数据输出
  • 消息日志
  • 执行计划
  • 历史记录

4. 菜单栏

提供全功能入口,包含菜单:

  • 文件
  • 编辑
  • 视图
  • 工具
  • 帮助

5. 工具栏

提供常用操作快捷按钮:

  • 保存
  • 执行
  • SQL格式化
  • 执行计划分析

数据库操作

创建数据库

使用对象浏览器

  1. 右键单击服务器下的「数据库」
  2. 选择「新建」→「数据库」
  3. 填写数据库名称
  4. 可选添加注释
  5. 点击「保存」

使用SQL语句

sql
CREATE DATABASE myapp
    WITH 
    OWNER = postgres
    TEMPLATE = template0
    ENCODING = 'UTF8'
    LC_COLLATE = 'en_US.UTF-8'
    LC_CTYPE = 'en_US.UTF-8'
    CONNECTION LIMIT = -1;

COMMENT ON DATABASE myapp
    IS '应用程序数据库';

选择数据库

pgAdmin中数据库按层级归属在服务器下,单击目标数据库可完成:

  • 查看数据库内对象
  • 打开查询工具
  • 执行数据库级操作

删除数据库

使用对象浏览器

  1. 右键单击目标数据库
  2. 选择「删除」
  3. 确认删除操作

使用SQL语句

sql
-- 先终止已有连接
SELECT pg_terminate_backend(pid) 
FROM pg_stat_activity 
WHERE datname = 'mydb' 
AND pid <> pg_backend_pid();

-- 删除数据库
DROP DATABASE mydb;

数据库属性

查看和修改数据库属性的方式:

  1. 右键单击数据库
  2. 选择「属性」

可配置项包括:

  • 所有者
  • 默认表空间
  • 编码格式
  • 排序规则
  • 连接数限制
  • 注释信息

表操作

创建表

使用表创建对话框

  1. 进入路径:数据库→目标库→模式→public
  2. 右键单击「表」
  3. 选择「新建」→「表」
  4. 填写基础信息
  5. 在「列」选项卡添加字段
  6. 在「约束」选项卡定义约束
  7. 点击「保存」

使用SQL语句

sql
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(50) UNIQUE NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    password_hash CHAR(64) NOT NULL,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    birth_date DATE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    is_active BOOLEAN DEFAULT TRUE
);

-- 添加对象注释
COMMENT ON TABLE users IS '用户账号表';
COMMENT ON COLUMN users.id IS '主键';
COMMENT ON COLUMN users.username IS '唯一用户名';

查看表数据

  1. 定位到目标表
  2. 点击「数据」选项卡
  3. 分页浏览数据
  4. 使用筛选条件过滤数据
  5. 按需导出数据

编辑表结构

  1. 右键单击目标表
  2. 选择「属性」
  3. 修改列、约束及其他配置
  4. 点击「保存」生效

删除表

sql
-- 删除单张表
DROP TABLE users;

-- 批量删除多张表
DROP TABLE users, products, orders;

-- 安全删除(不存在则不报错)
DROP TABLE IF EXISTS users;

-- 级联删除(关联对象一并删除)
DROP TABLE users CASCADE;

SQL查询工具

打开查询工具

支持多种打开方式:

  • 选中数据库,点击工具栏「查询工具」
  • 快捷键 Ctrl+E
  • 右键单击数据库,选择「查询工具」

编写查询语句

基础查询

sql
-- 查询所有字段
SELECT * FROM users;

-- 查询指定字段
SELECT id, username, email FROM users;

-- 带条件查询
SELECT * FROM users WHERE is_active = TRUE;

-- 排序查询
SELECT * FROM users ORDER BY created_at DESC;

-- 限制返回条数
SELECT * FROM users LIMIT 10;

复杂查询

sql
SELECT 
    u.id,
    u.username,
    u.email,
    COUNT(o.id) AS order_count,
    SUM(o.total_amount) AS total_spent,
    MAX(o.created_at) AS last_order_date
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.created_at >= '2023-01-01'
GROUP BY u.id
HAVING COUNT(o.id) > 0
ORDER BY total_spent DESC
LIMIT 20;

查询执行

  • 执行:运行当前光标所在查询(快捷键F5)
  • 执行脚本:运行编辑器内所有查询(快捷键F5)
  • 执行计划:展示查询执行计划(快捷键F7)
  • 执行计划分析:实际执行并展示详细计划(快捷键F7)

查询结果展示

数据输出选项卡

  • 网格形式展示结果
  • 点击列头可排序
  • 搜索框支持数据过滤
  • 支持多格式导出

消息选项卡

  • 查询执行耗时
  • 错误提示信息
  • 系统通知消息

执行计划选项卡

  • 可视化查询执行流程
  • 执行成本分析
  • 结果行数预估

数据导入导出

导出数据

导出查询结果

  1. 执行目标查询
  2. 点击「导出为CSV」按钮
  3. 设置导出参数
  4. 保存文件到本地

导出表数据

  1. 右键单击目标表
  2. 选择「导入/导出」
  3. 方向设为「导出」
  4. 选择文件格式(CSV、JSON、SQL)
  5. 配置导出参数
  6. 点击「确定」

导入数据

  1. 右键单击目标表
  2. 选择「导入/导出」
  3. 方向设为「导入」
  4. 选择文件格式
  5. 选中本地源文件
  6. 配置导入参数
  7. 点击「确定」执行

导出语句示例

sql
-- 带表头导出为CSV
COPY (SELECT * FROM users) TO '/tmp/users.csv' WITH (FORMAT CSV, HEADER);

-- 指定分隔符导出文本
COPY users TO '/tmp/users.txt' WITH (FORMAT TEXT, DELIMITER '|');

-- 导出指定字段
COPY users(id, username, email) TO '/tmp/users_partial.csv' WITH (FORMAT CSV, HEADER);

备份和恢复

备份数据库

使用备份对话框

  1. 右键单击目标数据库
  2. 选择「备份」
  3. 选择备份格式
  4. 设置备份选项
  5. 指定输出文件路径
  6. 点击「备份」执行

使用命令行备份

pgAdmin底层依赖pg_dump工具:

bash
# 自定义压缩格式备份
pg_dump -h localhost -U postgres -Fc -b -v -f /path/to/backup.dump mydatabase

# 纯SQL文本备份
pg_dump -h localhost -U postgres -c -f /path/to/backup.sql mydatabase

# 目录格式并行备份
pg_dump -h localhost -U postgres -Fd -j 4 -f /path/to/backup_dir mydatabase

恢复数据库

使用恢复对话框

  1. 右键单击目标数据库
  2. 选择「恢复」
  3. 选中备份文件
  4. 设置恢复选项
  5. 点击「恢复」执行

使用命令行恢复

bash
# 恢复自定义格式备份
pg_restore -h localhost -U postgres -d mydatabase /path/to/backup.dump

# 恢复纯SQL备份
psql -h localhost -U postgres -d mydatabase -f /path/to/backup.sql

备份可选参数

选项描述
格式-自定义压缩二进制格式
格式-目录支持并行的目录格式
格式-纯文本标准SQL文本格式
大对象包含数据库大对象
仅模式仅备份结构不备份数据
仅数据仅备份数据不备份结构

性能监控

仪表板

点击服务器名称打开仪表板,展示指标:

  • 服务器活动状态
  • 数据库连接数
  • 事务处理速率
  • 缓存命中率
  • 存储占用情况

服务器状态

  1. 定位到目标服务器
  2. 点击「服务器状态」
  3. 查看详细监控指标

查询性能分析

使用执行计划语句

sql
-- 基础执行计划
EXPLAIN SELECT * FROM users WHERE email = 'test@example.com';

-- 带耗时与缓冲区分析
EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT) 
SELECT * FROM users WHERE email = 'test@example.com';

使用语句统计插件

sql
-- 启用统计扩展
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;

-- 查询总耗时前十的语句
SELECT 
    query,
    calls,
    total_time,
    mean_time,
    rows
FROM pg_stat_statements
ORDER BY total_time DESC
LIMIT 10;

数据库统计信息

可通过以下路径查看详细统计:

  • 对象浏览器→数据库→统计
  • 表属性→统计
  • 索引专项统计

使用技巧与最佳实践

键盘快捷键

快捷键操作
Ctrl+E打开查询工具
Ctrl+F5执行当前查询
F5执行全部查询
F7查看查询执行计划
Ctrl+Shift+R重新加载服务器
Ctrl+空格代码自动补全

实用技巧

  1. 多标签查询:pgAdmin支持多查询标签页,可同时编辑多条语句
  2. 保存常用查询:使用保存按钮存储高频使用的SQL语句
  3. 连接颜色区分:为不同环境连接设置不同颜色,避免误操作
  4. 查询性能分析:使用执行计划分析优化慢查询
  5. 定期备份:配置自动化备份计划,保障数据安全

常见问题

连接问题

  • 确认PostgreSQL服务正常运行
  • 核对连接参数(主机、端口、账号、密码)
  • 检查防火墙端口放行规则
  • 校验pg_hba.conf认证配置

性能问题

  • 合理创建与使用索引
  • 定期执行表分析操作
  • 持续监控查询性能
  • 针对性优化慢查询语句

小结

pgAdmin是简化PostgreSQL管理的强大工具,核心价值体现在:

  • 跨平台支持,兼容主流操作系统
  • 图形化界面直观易用,降低使用门槛
  • 覆盖全量数据库管理操作
  • 查询工具功能丰富,支持复杂SQL编写与调试
  • 内置性能监控模块,便于运维排查
  • 备份恢复流程可视化,操作简便

熟练使用pgAdmin,能大幅提升PostgreSQL开发与运维人员的工作效率。