以为PostgreSQL只能敲命令?pgAdmin可视化管理真绝了

前言

提起PostgreSQL,很多人的固有印象还停留在黑乎乎的终端窗口。在不少人的认知里,操作PG数据库就等于和命令行打交道:创建库、新建表、维护用户权限、排查慢查询,全都要靠手写SQL指令完成。一旦忘记语法、字段名或者权限配置,就要反复翻文档、试命令,新手入门门槛高,就算是老手,做日常运维、核对表结构的时候也比较耗时间。

很多人不知道,PostgreSQL生态自带强大的可视化管理工具pgAdmin。不用全程依赖psql命令行,网页端就能直观看到所有数据库、表、索引、约束、角色权限,可视化编写 SQL、一键执行、查看执行计划,还能浏览日志、监控连接状态、导出数据。原本需要好几条命令才能完成的操作,现在鼠标简单点选就能搞定。

本次教程,基于CentOS7系统,采用「系统安装PostgreSQL14 + Docker 部署pgAdmin」的方案,一步步完成数据库安装、远程访问配置,解决连接踩坑问题,最终在pgAdmin网页端成功连上宿主机PG,告别纯黑框命令行管理,让PostgreSQL的使用与运维变得更加轻松直观。

image-20260909170254565

1.pgAdmin是什么?

pgAdmin是PostgreSQL官方推荐、开源免费的可视化管理工具,专门用来管理PostgreSQL数据库,支持网页版与桌面客户端,是PG生态最主流的管理面板。

✅ 核心特点

  1. 原生适配PostgreSQL专门为PG设计,完整支持PG所有特性:角色权限、schema、分区表、触发器、存储过程、扩展、逻辑复制等,不会像通用数据库工具那样丢失PG独有的功能。
  2. B/S网页架构(你现在用的版本) 网页版pgAdmin可以部署在Docker、服务器上,浏览器直接访问,不用在每台电脑单独装客户端。你当前就是Docker容器部署的网页版pgAdmin4
  3. 可视化替代命令行 不用死记psql命令,鼠标点选就能:
  • 创建 / 删除数据库、表、索引、视图
  • 管理数据库用户、角色、权限
  • 可视化写SQL,执行、查看结果,自动生成执行计划(慢查询调优神器)
  • 查看数据库连接、后台进程、日志、磁盘占用
  • 导入、导出SQL/CSV备份数据
  1. 跨平台 支持Windows、Linux、macOS;网页版只要浏览器就能打开。

📌 适合人群

  • PostgreSQL新手:不想全程敲黑框psql命令,可视化理解表结构
  • 开发人员:快速写SQL、调试语句、查看执行计划
  • 运维:日常监控、权限管理、简单备份恢复

⚠️ 小误区

pgAdmin跑在Docker容器里,容器内127.0.0.1是容器自身,不能直接访问宿主机的PostgreSQL,必须填写宿主机真实内网IP。

一句话总结

PostgreSQL是数据库服务(存放数据),pgAdmin是它的可视化网页管理面板,相当于数据库的网页后台,替代psql命令行做图形化操作。

2.安装前提

系统基础环境

  1. 操作系统:支持Linux(CentOS7/8、Ubuntu、Debian等)
  2. 内核版本:Linux内核 ≥ 3.10(CentOS7默认内核3.10,符合最低门槛)
  3. 网络:服务器能拉取Docker镜像,可以访问外网(拉取dpage/pgadmin4镜像)
  4. 资源最低配置
    • CPU:1核起步
    • 内存:至少512M,推荐 ≥1G;内存过低会出现pgAdmin网页加载卡顿、500报错

预先装好Docker环境

  • 已安装Docker Engine,并且Docker服务正常运行
# 校验命令
docker -v
systemctl status docker
  • Docker后台服务设置开机自启(可选,服务器推荐)
systemctl enable docker

网络与端口规划

  1. 宿主机端口预留:需要一个空闲端口(你用的是5050),端口不能被其他程序占用
# 查看端口占用示例
ss -tulpn | grep 5050
  1. 防火墙放行pgAdmin访问端口:外部浏览器访问pgAdmin网页,需要在firewalld开放对应端口
firewall-cmd --permanent --add-port=5050/tcp
firewall-cmd --reload

如果你后续要连接宿主机 PostgreSQL 数据库,PG 的 5432 端口也需要放行。

数据库前置

  1. PostgreSQL服务正常运行,监听地址设置为 *listen_addresses='*'),不能仅监听 127.0.0.1
  2. pg_hba.conf访问策略允许pgAdmin容器网段访问 PG
  3. 数据库账号(postgres)已设置登录密码,不能是空密码
  4. 容器pgAdmin连接宿主机PG时,不能填写127.0.0.1,必须填写宿主机真实内网 IP

其他前置

  1. 时间同步:服务器系统时间准确,避免cookie、会话登录异常
  2. 权限:操作服务器需要root或者具备sudo权限
  3. 域名(可选):如果想域名访问pgAdmin,提前准备域名并做解析(内网使用不需要)

3.安装pgAdmin

Docker一键部署pgAdmin4

docker run -d \
  --name pgadmin4 \
  -p 5050:80 \
  -e PGADMIN_DEFAULT_EMAIL=admin@pg.com \
  -e PGADMIN_DEFAULT_PASSWORD=Admin@123456 \
  -v pgadmin-data:/var/lib/pgadmin \
  --restart=always \
  dpage/pgadmin4:6.21

image-20260909161813313

查看是否启动成功:

docker ps

image-20260909161923345

查看日志是否报错:

docker logs pgadmin4

image-20260909162225450

部署完成后,在浏览器中输入 http://IP:5050 就能看到pgadmin的界面:

42498945403a8b4793a9835ff43f36a3

4.使用pgadmin

使用docker部署时的账号密码登录,并把语言设置成中文:

f548e58b32c42e0329f82fea27f5a267

登录成功!

571b9fda567647d68317264f9b2e51f7

添加postgres服务:

0cbbf631ae8e0d1755b3777730b989f7

设置名称:

a327b2c712a6060ad0e47392369659a0

连接设置:

  • 主机名称 / 地址填写宿主机内网IP192.168.42.140
  • 端口保持默认5432
  • 维护数据库为postgres
  • 用户名填写postgres并录入数据库登录密码

开启保存密码选项,界面右下角是蓝色的保存按钮,用于提交PostgreSQL数据库连接配置。

  • 可以先查看自己所有的用户:

e753f8ca3228df5e27f80d7489e11ebb

a0e805a5542df180ffbebfc50c17d8cc

导入成功:

pgAdmin网页管理面板的数据库仪表盘页面,左侧浏览器栏已成功连接名为postgres的PostgreSQL服务器;页面上方展示多组可视化监控图表,包含服务器会话、每秒事务、元组输入输出、数据块I/O等实时性能曲线,下方服务器活动区域列出数据库所有会话进程,能直观看到PID、连接用户、客户端来源、会话状态与等待事件,其中一条会话来自pgAdmin自身,状态为active,实现网页端一站式监控数据库运行状态。

60d16b3f3cdbd154923c1c40e84afe24

手动创建数据库:

image-20260909165356571

pgAdmin网页端的「创建 – 数据库」弹窗,当前停留在General基础标签页,数据库名称输入框填写ceshi,所有者下拉菜单选择超级用户postgres,右下角蓝色保存按钮用于提交创建操作,全程鼠标操作即可完成新建数据库,无需手写CREATE DATABASE SQL语句。

image-20260909165733629

查看sql语句:

image-20260909165847368

创建成功:

image-20260909165934264

手动创建用户:

image-20260909165958030

pgAdmin网页端的「创建 – 登录 / 组角色」弹窗,当前在General基础标签页,角色名称输入框填入ceshi,上方还有定义、权限、成员、安全等配置子标签页,右下角蓝色保存按钮,用来新建数据库登录账号,可视化完成PostgreSQL用户角色创建,不用手写CREATE ROLE语句。

image-20260909170032366

pgAdmin创建登录 / 组角色窗口的权限标签页,可以可视化配置角色权限开关,包含是否允许登录、是否设为超级用户、能否新建角色、能否创建数据库、是否继承父角色权限、是否支持流复制备份等选项,当前仅开启「从父角色继承权限」,其余选项保持关闭状态,右下角提供保存按钮,鼠标勾选即可完成角色权限配置,不用手写权限相关SQL。

image-20260909170042163

创建成功:

image-20260909170150143

表空间也同理!

image-20260909170209516

更多精彩内容等你去挖掘~

pgAdmin本身默认只能在内网访问,只能在服务器所在局域网打开网页管理PostgreSQL,在外网、家里电脑就无法直接连接数据库面板。搭配cpolar内网穿透 就能轻松突破内网限制,不需要公网IP、不用修改路由器端口映射,一行命令即可生成公网访问地址。无论身在何处,浏览器访问cpolar生成的公网链接,就能打开pgAdmin可视化面板,远程查看数据库状态、新建库表、调试SQL,随时随地管理你的PostgreSQL服务,远程运维数据库变得简单高效。

5.安装cpolar实现随时随地开发

5.1 什么是cpolar?

cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。

5.2 部署cpolar

cpolar可以将你本地电脑中的服务(如SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

官网在此:https://www.cpolar.com

使用一键脚本安装命令:

sudo curl https://get.cpolar.sh | sh

image-20250725104019896

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

22e5adfaf290a17fc3384bb296055259

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

8a6698b1bf26d64ba3645827fbfb1c29

6.配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:pgadmin,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:5050
  • 域名类型:随机域名
  • 地区:选择China Top

image-20260909170454054

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

image-20260909170905561

访问成功。

image-20260909171005209

7.保留固定公网地址

使用cpolar为其配置二级子域名(cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站),该地址为固定地址,不会随机变化。

image-20250918151358733

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是pgadmin,大家可以自定义。填写备注信息,点击保留。

image-20260909171110414

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20260909171127589

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20260909171151892

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20260909171217105

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20260909171228706

总结

很多人初次接触PostgreSQL,都会陷入一个固有认知:数据库操作只能依靠黑乎乎的命令行,建库、建用户、调SQL、查看数据库状态,全部要手写psql指令,上手难度高,运维效率低。

读完本文就能发现,完全不必死守命令行。借助pgAdmin这款PostgreSQL官方开源可视化工具,网页端鼠标点选就能完成绝大多数数据库管理工作,直观查看表结构、配置账号权限、监控数据库会话、分析SQL执行计划,大幅降低PostgreSQL的使用门槛。

本次教程采用「宿主机CentOS7部署PostgreSQL14 + Docker运行pgAdmin」的方案,解决了容器pgAdmin连接宿主机数据库的 IP 踩坑问题,成功打通数据库连接。如果需要外网远程管理,还可以搭配cpolar内网穿透,无需公网IP、不用配置路由器端口映射,一条命令即可生成公网访问地址,随时随地通过浏览器打开pgAdmin面板,远程维护PostgreSQL数据库。

命令行依旧是PostgreSQL强大的操作方式,但pgAdmin让数据库管理不再只局限于黑框终端。图形化面板搭配cpolar内网穿透,兼顾便捷性与远程访问能力,不管是新手学习PG,还是开发、运维日常管理数据库,都是一套省心好用的方案。

感谢您对本篇文章的喜爱,有任何问题欢迎留言交流。cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

Share:

发表回复

目录

On Key

推荐文章