pgweb PostgreSQL 网页管理工具教程:三步拉起数据库浏览器
【免费下载链接】pgwebCross-platform client for PostgreSQL databases项目地址: https://gitcode.com/gh_mirrors/pg/pgweb
pgweb 是一个用 Go 编写的轻量 PostgreSQL 网页数据库管理工具,单个二进制、零依赖,启动后就能在浏览器里浏览表结构和执行 SQL 查询。本文带你完成本地安装、启动验证和核心界面操作。
它解决什么问题
连接 PostgreSQL 数据库,过去要么开 psql 命令行,要么装一个功能庞杂的桌面客户端;想把库的状态给同事看一眼就更麻烦了。pgweb 替代的正是这些操作:一个二进制文件,Mac、Linux、Windows 通吃,支持多数据库会话并行、SSH 隧道直连远程库、查询结果导出 CSV/JSON/XML,兼容 PostgreSQL 9.6+。适合经常和 PostgreSQL 打交道的开发者,以及想给团队快速搭一个浏览器入口的运维人员。
🚀 三步跑起来
1. 确认环境
准备一个可连的 PostgreSQL 9.6+ 实例即可。若选择源码编译,需要本机装有 Go(go.mod 声明要求 Go 1.25);用 Docker 或官方预编译二进制则无额外要求。
2. 安装
下面这段命令拉取源码并编译出可执行文件,产物放在当前目录:
git clone https://gitcode.com/gh_mirrors/pg/pgweb cd pgweb make build不想编译也行:项目自带 Dockerfile,跑一次make docker && make docker-run就能得到等效的服务。
3. 启动并验证成功
下面这条命令以默认数据库连接信息启动服务,主机、用户、库名都可以按需替换:
./pgweb --host localhost --user myuser --db mydb成功的标志:浏览器打开http://localhost:8081(启动时 pgweb 会自动弹出浏览器),看到一个白底连接表单,填好账号点 Connect 就能进入数据库。
🖥️ 核心界面与操作
第一屏:连接数据库
连接表单依次是 Host、Username、Password、Database、Port(默认 5432)和 SSL 模式。如果启动时加了--sessions参数,左上角会出现 Bookmark 下拉框,可以在多个已保存的连接之间切换,不用反复重启。表单同样支持 SSH 隧道方式,适合连跳板机后面的库。
浏览表和数据
连接成功后,左侧是按 schema 分组的表树。点进任意一张表,顶部标签可在 Rows、Structure、Indexes、Constraints 之间切换;数据区支持按列筛选、关键词搜索和翻页,左下角还能看到表大小与预估行数。
写查询、导结果
切到 SQL Query 标签页就是带语法高亮的编辑器,写完点 Run Query 执行,或点 Explain Query 看执行计划。结果右上角可一键导出 CSV、JSON、XML;History 标签页保留完整查询历史,回头翻旧 SQL 很方便。
⚙️ 关键配置速查
| 配置项 | 作用 | 默认值 | 什么时候需要改 |
|---|---|---|---|
--listen | Web 服务监听端口 | 8081 | 端口被占用或想换访问地址时 |
--bind | 服务绑定主机 | localhost | 需要让其他机器访问时 |
--host / --user / --db | 默认数据库连接信息 | localhost / 系统用户名 / 空 | 希望启动即固定连某个库时 |
--url | 一行式连接串(含账号、SSL 模式) | 空 | 连接参数较多、想避免拼错时 |
--auth-user / --auth-pass | 登录页 Basic 认证账号密码 | 不启用 | 把服务暴露到网络前必配 |
--sessions | 允许多个数据库会话并行 | 关 | 同时管理多个库时 |
--readonly | 连接锁为只读 | 关 | 分享给他人、防止误写时 |
--prefix | URL 路径前缀 | 空 | 挂在反向代理后面时 |
以上参数都可用PGWEB_前缀的环境变量替代,例如PGWEB_SESSIONS=1。
🛠️ 常见坑与排查
端口 8081 被占用启动日志会提示监听端口已被使用。加--listen 9000换个端口,或找到占用 8081 的进程停掉。
连接被拒绝或认证失败多半是主机、用户或 SSL 模式与数据库端不一致:SSL 设为 require 却连未开加密的实例必挂,本地调试可先改成 disable;参数多时用--url一行式写法能减少逐项拼错。
不指定用户启动,连接反而失败不传--user时 pgweb 会拿当前系统用户名去连,数据库里没有同名角色就直接失败,显式传--user即可解决。
注意:默认页面没有任何登录校验,能访问到端口的人就能操作数据库。把 pgweb 暴露到网络时,务必配上--auth-user/--auth-pass并限制--bind的可见范围。
写在最后
三步之后,你的 PostgreSQL 就住进了浏览器,而且不用操心任何依赖。完整功能清单见 README.md,全部界面截图见 SCREENS.md,连接书签和系统服务脚本等参考素材在 config/ 目录。
【免费下载链接】pgwebCross-platform client for PostgreSQL databases项目地址: https://gitcode.com/gh_mirrors/pg/pgweb
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考