Skip to content

数据库工作台 ​

Navicat 式的数据库管理器:左侧连接树统管所有连接,可拖拽布局,会话持久;SQL 编辑器 + 点选式数据 CRUD + 图形化表设计器 + DBA 工具 + 导入导出。Reeve 内嵌了一个受控的 Navicat。

数据库工作台

支持的数据库 ​

类型说明
MySQL5.7 / 8.0
MariaDB / TiDB / OceanBaseMySQL 兼容库类型,复用 MySQL 驱动
PostgreSQL12+
SQLite本地 / 远端文件
SQL Server通过 TDS 协议(tiberius)
MongoDB文档浏览器
ClickHouseHTTP 8123 执行器
Redis一等数据源(DB0-15 + key 树 + INFO 仪表盘,见下)

进入 ​

  • 主界面左侧导航 → 数据库(全局跨机,一棵树管所有连接)
  • 服务器工作台 → 数据库 标签(单机视角)
  • 服务凭据卡片 → 查询 按钮(直接连某条凭据)

侧边栏页与工作台标签共用同一套 SQL 工作台组件,会话状态持久——切到别的页再回来,打开的连接和 SQL 草稿都还在。

凭据来源 ​

数据库工作台必须先有凭据,三种来源:

  1. 手动创建:服务凭据页或工作台里新建 DB 凭据(归属选了服务器时默认经它的 SSH 隧道连接,主机怎么填见下文经服务器 SSH 隧道连接)
  2. AI 一键安装:MCP 工具 install_with_secret 装好的 MySQL / Postgres / Redis 自动入凭据库
  3. 从已有服务器内查:服务器关联的 DB(如远端 1Panel 装的 MySQL)

连接树 ​

左侧是一棵连接树,而不是单库树——一棵树管所有连接,可同时展开多个连接:

连接树
├─ ● MySQL @ aliyun-prod      绿点=已连,driver 图标,[受控] 徽标
│   ├─ ▸ shop_db
│   │    ├─ 表 (24)            数量徽标
│   │    │   ├─ users          列带 PK/FK/索引/NOT NULL 图标
│   │    │   └─ orders
│   │    ├─ 视图 (3)
│   │    ├─ 存储过程 (5)
│   │    └─ 函数
│   └─ ▸ log_db
├─ ○ PostgreSQL @ home-nas    灰点=未连,点击懒连接
└─ ○ SQLite @ app.db
  • 灰点连接点击即懒连接;断连可双击 / 右键重连,绿点反映真实可达性
  • 树顶有过滤框,按名字快速定位
  • 连接级操作(创建库 / 同步 / 备份 / 改密 / 实例工具)收纳在树底工具条 + 连接节点右键
  • 单击库节点:左侧树展开表,同时右侧显示表清单(对象列表,每行带表图标、注释、导入 / 导出按钮)

可拖拽布局 ​

  • 连接树 ↔ 工作区横向可拖拽
  • 编辑器 ↔ 结果区纵向可拖拽
  • 分割位置记忆,不再是写死的宽度 / 高度

SQL 编辑器 ​

CodeMirror 6 驱动,多 Tab:

  • 各方言语法高亮(MySQL / PG / SQLite / SQL Server …)
  • 关键字 + 基于元数据的表名 / 列名补全
  • Cmd/Ctrl+Enter 执行光标所在语句;Cmd/Ctrl+Shift+Enter 执行整个 Tab
  • 运行 SQL 文件采用 Navicat 式布局,消息日志直接显示在下方

数据网格(点选式 CRUD) ​

双击表名打开数据网格,不写 SQL 也能改数据:

  • 列宽可拖,列排序 + WHERE 筛选
  • 表头第二行显示列注释(备注)
  • 单元格右键 + 双击行内编辑,新增行
  • 横向滚动条固定贴面板底部
  • 单元格点击查看完整内容(含 BLOB / JSON,BLOB 按 UTF-8 显示)
  • 大结果分页

写回也走安全通道

数据网格的改 / 删都走参数化 db_execute + 必带 WHERE 主键,和手写 SQL 一样过危险检查、写审计。

图形化表设计器 ​

中间编辑区以标签页形式打开(对标 Navicat):

  • 建表:加列 / 删列、类型、约束、默认值
  • 改列(MODIFY) + 索引管理(加 / 删)
  • 只读查看表结构 / 建表语句

DBA 工具 ​

  • 进程列表 / Kill 会话
  • 用户权限 查看
  • EXPLAIN 执行计划
  • 库级 运行 SQL 文件 / 转储 SQL 文件(库级 SQL,区别于表级 CSV)
  • 删表 / 清空表 / 重命名表(人用 DBA 通道 + 二次确认)

建库 / 同步 / 备份 ​

  • 建库:支持指定字符集与排序规则(collation,默认 utf8mb4_general_ci)
  • 多库同步 / 备份恢复
  • AI 生成 SQL:用自然语言描述需求,AI 生成 SQL 填进编辑器

导入导出 ​

  • 数据网格 / 对象列表 / 库节点 / 表分类节点多处入口
  • 表数据导入 / 导出 CSV / SQL
  • 结果导出 JSON / CSV,复制为 Markdown 表格

查询历史 & SQL 片段 ​

  • 每个连接的执行历史可回溯
  • SQL 片段库:常用 SQL 不绑特定凭据,任意编辑器一键插入(见命令片段)

Redis 一等数据源 ​

Redis 凭据进入时切到 Redis 视图(不再只是简单 Key/Value):

  • DB0-15 切换
  • Key 树:全类型(String / Hash / List / Set / ZSet)增删改查
  • INFO 仪表盘:服务器状态可视化
  • CLI:直接敲 Redis 命令
  • pub/sub:订阅 / 发布

支持的 MCP 工具:

工具说明
redis_scan列 Key(glob 模式)
redis_get取单 Key
redis_set写 Key(TTL 可选)
redis_del删除 Key
redis_exec任意命令(HGETALL / ZRANGEBYSCORE 等)

人用 vs AI 视角 ​

人用查询 ​

  • 你在 SQL 编辑器 / 数据网格里执行的语句不走 AI policy(人用通道)
  • 但仍受危险 SQL 检查约束:
    • 永久拦:DROP DATABASE / TRUNCATE / DELETE FROM xxx(无 WHERE)
    • 二次确认:可疑的 UPDATE / DELETE
  • 所有执行仍然写审计

AI 走 db_query / db_execute ​

  • 完全过 AI 策略引擎
  • 出口走脱敏规则(密码字段自动 [REDACTED])
  • 行数限制(默认 100,可在工具参数指定 limit)
  • Redis 危险命令永久拦:FLUSHALL / FLUSHDB / CONFIG / SHUTDOWN / DEBUG

经服务器 SSH 隧道连接 ​

新建 / 编辑连接时,归属选了一台服务器,就默认经这台服务器的 SSH 隧道连数据库(表单里「经服务器 SSH 隧道访问」开关默认打开):

  • 连接时自动建一条 SSH -L 端口转发,本机经 127.0.0.1:<随机端口> 访问,闲置一段时间后自动回收
  • 数据库端口不用对公网开放,只听本机(127.0.0.1)也能连
  • 人用查询和 AI 的 db_query 走同一条隧道
  • 工作台底部状态栏显示「SSH 隧道」标记,表示当前连接正走隧道

主机 / 端口按服务器的视角填 ​

开着隧道时,主机和端口是站在那台服务器上解析的,不是站在你的电脑上:

数据库在哪主机端口
就装在这台服务器上(含 Docker 映射到宿主机的端口)127.0.0.1数据库实际监听的端口(如 3306)
同内网的另一台机器 / 云数据库的内网地址服务器能访问到的内网地址该数据库的端口

别填服务器自己的公网 IP

填了服务器自己的公网地址,连接会从服务器绕到公网再连回自己,数据库看到的来源变成服务器的公网 IP,只授权了本机访问的账号会报 1045 Access denied for user 'xxx'@'<服务器公网 IP>'。数据库就在这台服务器上时,主机填 127.0.0.1。

不确定数据库监听在哪个端口,在服务器终端里执行:

bash
ss -tlnp | grep -E 'mysql|postgres|redis|mongo|:3306|:5432|:6379'

0.0.0.0:3306 或 *:3306 表示所有地址都在听,主机填 127.0.0.1 即可;只显示某个内网 IP(如 10.0.0.5:3306)时,主机填那个 IP。

关掉隧道 = 直连 ​

关掉开关后,Reeve 从你这台电脑直接连主机 / 端口:

  • 数据库要对外开放该端口,并允许你的来源 IP 登录(云数据库通常要在控制台加白名单)
  • 此时 127.0.0.1 指的是你这台电脑,不是服务器

归属选「本机 / 本地」的连接一律直连,没有隧道开关。

表单提示与连接报错 ​

新建 / 编辑连接时,表单会拦下两种常见填错(不阻止保存):

  • 开着隧道,主机却填了这台服务器自己的地址 → 提示原因,一键改为 127.0.0.1
  • 关着隧道,主机却填了 127.0.0.1 → 提示那是你这台电脑,一键打开隧道

经隧道连接失败时,报错会说清是哪一段的问题:

报错含义怎么办
隧道目标连不上SSH 已连通,但服务器上连不上填写的主机 / 端口——多半是端口填错,或数据库只监听了别的地址在服务器上用上面的 ss -tlnp 查实际端口,再编辑连接
隧道被服务器禁止服务器的 sshd 不允许端口转发在 /etc/ssh/sshd_config 里设 AllowTcpForwarding yes 后重启 sshd
认证失败隧道是通的,用户名 / 密码不对,或账号没给这个来源授权核对密码和账号授权的来源主机;数据库就在这台服务器上时,它看到的来源是 127.0.0.1 / localhost(Docker 里则是容器网关地址)

表单提示与「隧道目标连不上」「隧道被服务器禁止」这两类报错需要 v2.5.0 之后发布的版本;更早的版本里,这类情况会笼统地报「连接被对端断开」。

用端口转发页自建隧道 ​

也可以先在 端口转发 页建好隧道,再让连接指向它:主机填 127.0.0.1、端口填隧道的本地端口,归属选「本机 / 本地」(或关掉隧道开关)——否则 Reeve 会在你的隧道外面再套一层,变成从服务器去连服务器上的那个本地端口。

Reeve 的差异化 ​

Navicat 没有、而 Reeve 立身的能力:

  • 写操作走策略引擎 / 审批队列 / 审计;输出脱敏 [REDACTED:...]
  • 凭据明文前端永不可见;改密走自助重置 + 加密回写
  • 连接树节点标「受控」徽标,把安全约束变成可见的能力

下一步 ​

若依科技工作室 · 承接后台管理 / 桌面软件 / 全栈 / 小程序定制开发 · 技术服务咨询