一个 DBX 工作台,管理多种数据库:VPS 部署与文件路径实践

部署 DBX Web,分别理解 PostgreSQL、Redis、MongoDB 和 SQLite 的访问方式,处理驱动、容器路径与样例文件。

·10 minDockerVPSDBX数据库
把应用部署到土耳其|BRNCHOST · 土耳其 VDS
云服务器,积分可续期|雨云 · 国内外节点 · 积分兑换权益
低价年付,大流量 VPS|RackNerd · SSD 存储 · 1Gbps 端口
香港轻量,搭个小站|晚安云 · 香港云服务器
香港 VPS,大带宽可选|野草云 · BGP 直连
大陆访问,精品线路|搬瓦工 · CN2 GIA / CTGNet 套餐
资料归档,交给 AI 整理|WorkBuddy · 本地文件处理
建站起步,先看应用镜像|腾讯云 · 轻量应用服务器
CN2 GIA,中国方向优化|DMIT · Premium 网络
双 ISP 原生住宅 IP|丽萨主机 · 美国 9929 精品线路
高频 CPU,多地部署|Evoxt · 云服务器 · 每周异地备份
京东云轻量云主机:129元/年,新人专享,限购1台

一个小项目也可能同时用到好几种数据库:PostgreSQL放业务记录,Redis放缓存,脚本导出的SQLite文件留着做离线核对。工具越来越多,真正麻烦的却常常不是查询语法,而是忘记数据在哪台机器、哪个容器和哪个目录。

把DBX放到VPS,可以把这些入口集中起来。不过,统一界面不会统一数据库的工作方式。SQL表、Redis键和MongoDB文档依然各有各的语义,文件型数据库还多了一层路径和锁的问题。这篇围绕“一个浏览器管理多种数据”搭建环境,重点说明哪些地方可以共用,哪些地方必须分开理解。

DBX 多库管理:网络数据库与文件数据库的不同连接方式

先画出一张自己的数据位置表

部署前,先把准备连接的对象列清楚。下面是一份示例,并不是要求你一次装齐这些数据库。

数据来源 DBX需要访问什么 首先确认什么
PostgreSQL 数据库主机与端口 数据库、Schema、只读角色
Redis Redis端点 ACL账号、逻辑库编号、键前缀
MongoDB 数据库端点 认证库、目标库、文档权限
SQLite 容器能读到的文件 一致性副本、文件权限、写入锁
DuckDB 文件与相应运行驱动 Web版驱动、路径、文件格式

表里没有“浏览器电脑上的桌面目录”。Web版的后端在VPS,文件路径也从那里计算。你在笔记本浏览器里输入 /Users/me/data.db,容器并不会因此读取到笔记本的文件。

官网目前列出多种SQL、NoSQL和兼容引擎,但不是每种连接都提供完全一样的结构对比、导入或可视化能力。实际工作可以先验证最常用的PostgreSQL和Redis,再逐步增加驱动。DBX项目、数据库支持

VPS部署:状态卷与样例文件目录分开

下面使用Docker Hub镜像0.6.29,只开放本机回环端口。先建立目录与入口密码:

mkdir -p ~/services/dbx-multi/samples
cd ~/services/dbx-multi
umask 077
printf 'DBX_PASSWORD=%s\n' "$(openssl rand -hex 24)" > .env
chmod 600 .env

创建compose.yaml:

name: dbx-multi
services:
  dbx:
    image: t8y2/dbx:0.6.29
    restart: unless-stopped
    ports:
      - "127.0.0.1:4224:4224"
    environment:
      DBX_PASSWORD: ${DBX_PASSWORD:?请先设置入口密码}
    volumes:
      - dbx-data:/app/data
      - ./samples:/samples:ro
    stop_grace_period: 90s
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"
volumes:
  dbx-data:

dbx-data保存工作台状态,samples只放准备给它读取的样例副本。挂载整个个人目录或宿主机根目录没有必要,也很难控制暴露范围。只读挂载能阻止容器写这批文件,但不保证所有驱动都能以只读文件方式打开;某些驱动需要创建锁或辅助文件,失败时要检查驱动方式,而不是立刻把整个目录改成任何人可写。

运行docker compose config --quiet、docker compose pull、docker compose up -d。在本机建立ssh -N -L 14224:127.0.0.1:4224 your-user@your-vps后,打开http://127.0.0.1:14224登录。长期使用可接HTTPS或VPN入口,不必公开数据库端口。

如果缺少练习环境,可以查看雨云当前云服务器。选择时留意DBX到现有数据库的网络;需要分析较大文件时,也要算上文件副本、临时数据和备份的空间。数据库本身已经很忙的VPS,不适合再无计划地塞入大文件分析任务。

雨云:为多种自托管服务安排合适的服务器

PostgreSQL先用作基准连接

为PostgreSQL创建一个独立只读账号,让DBX访问一个演示库。数据库也在Docker时,先让两者加入同一用户自定义网络,再使用数据库服务名和5432。数据库在其他机器时,则用VPS能访问到的受控地址。

保存连接后执行SELECT current_database(), current_user;,接着读几行样例记录。这个动作提供一个基准:网页、入口认证、DBX进程和数据库链路都正常。之后Redis连接出问题,就可以把注意力集中在Redis配置,而不是怀疑整个工作台没有启动。

DBX Web 中的真实演示查询界面

这张图展示PostgreSQL样例;Redis和MongoDB各有专用界面,不会被伪装成同一种SQL表格。

给连接命名时,把环境放在前面、权限放在后面,例如demo-orders-readonly。如果用一个统一入口管理多个站点,名称里再加站点简称。别让十条连接都叫“数据库1”。

Redis先看键的含义,再看值

缓存排查的常见问题是:这个键存在吗、类型是什么、还有多久过期、值是否符合预期。不要一进入工作台就扫描全部键,更不要把清空缓存当成刷新页面的替代动作。

可以在独立演示Redis里准备一个小样例:

SET demo:article:42 "published" EX 3600
HSET demo:profile:7 name "reader" level "basic"
EXPIRE demo:profile:7 3600

上面是Redis命令,只用于演示实例。然后在DBX里按demo:*找键,查看String与Hash的区别,再查看TTL。TTL为-1表示没有过期时间,-2表示键不存在;这两个状态不要混为“缓存已过期”。Redis TTL说明

键名也可能包含用户标识或业务信息,截图前同样需要检查。值很大时先确认查看范围,不要把图形界面的预览理解成无限制、零成本的读取。真正线上使用时,由Redis ACL限制访问前缀和命令,再配合DBX只读连接。DBX Redis工作台

MongoDB别把“有文档”当成“结构相同”

MongoDB同一集合中的文档可能缺字段、类型不同,甚至有旧版本应用留下的结构。查看少量文档时先限定过滤条件和返回数量,再决定是否展开复杂嵌套字段。一个字段在第一条文档中是数字,不代表所有文档都能按数字处理。

连接失败时,除了用户名密码,还要检查认证库。认证用户所在的库与准备浏览的业务库可以不同,这也是SQL数据库使用者刚接触MongoDB时容易忽略的地方。

DBX提供集合与文档操作入口,但本篇不把MongoDB界面当成已实际验证的内容。导入JSON、修改文档、聚合查询之前,先在专用测试集合里确认当前版本行为。删除字段与把字段值写成null并不等价,批量修改尤其需要事先记录影响范围。MongoDB工作台文档

SQLite:先做一致性副本,再挂进容器

正在被应用使用的SQLite数据库,不宜随手只复制主文件。启用WAL时,部分已提交内容可能还在WAL文件里。可以在拥有合适权限的环境使用SQLite备份命令生成副本:

sqlite3 /path/to/source.db ".backup '/path/to/export/sample.db'"

确认命令成功后,把副本放进前面的samples目录,DBX看到的路径就是/samples/sample.db。本文没有要求你把源业务文件直接挂进容器,更没有要求DBX与业务应用争用同一个可写文件。SQLite在线备份说明

只读查看失败时,先检查容器能否读取文件、父目录能否遍历、文件是否为完整副本,以及驱动是否需要写入辅助文件。如果确实需要可写练习副本,另建专用目录,只复制测试数据,不要解除生产目录的保护。

DuckDB也要按文件位置和驱动能力来判断。需要额外驱动时,在DBX驱动管理中查看当前状态,不要把桌面安装包里能用的能力直接套到Web镜像。Parquet相关导入也有目标引擎限制,并非所有数据库连接都能接收同样格式。驱动管理、表数据导入

ER图和结构对比,用来发现问题,不替你决定变更

对关系型数据库,ER图能帮助理解表之间的关系;但如果库里没有声明外键,图也不可能准确推断所有业务关联。字段血缘同样依赖可见元数据和解析范围,不能当成业务影响的完整清单。

比较测试与正式Schema时,先明确源和目标,再检查生成SQL。新增字段与删除字段的风险不一样,类型变化还可能触发重写、锁和数据转换。DBX给出的差异适合审查,执行变更仍应走你自己的备份和发布流程。Schema与数据对比

把多库工具用顺手的诀窍,是统一入口、分别验证。连接清单可以集中,账号权限和操作习惯不能偷懒合并。PostgreSQL的只读角色不会替Redis限制命令;只读挂载也不会替MongoDB限制文档更新。

**本文验证范围:**2026 年 9 月 30 日,在本地隔离 Docker 环境运行 DBX 0.6.29(ARM64)与 PostgreSQL 18.6,完成网页密码登录、保存连接、三行样例查询,以及数据库只读角色拒绝 UPDATE 的检查;停止 DBX 后备份完整卷,恢复到独立卷与端口,再次登录并使用保存的连接查询成功。本文没有在生产 VPS 安装 DBX;1Panel 点击安装、公网证书签发、MongoDB、文件数据库、批量导入导出和跨版本升级未作实测,相关步骤依据官方资料与部署原理说明。

等这几个连接稳定以后,再考虑添加AI接口、更多驱动或其他数据库。先让最常用的任务少走几步,比一次点亮所有功能更容易长期维护。