REAL WORKSPACE · CONNECTION 11

连接数据库

通过 DBHub,让 Codex 安全地查询开发、测试、生产等多环境数据库。一个配置文件,零代码改造。

DBHubMCP多环境只读保护
01

最简单的理解

忘掉那些复杂的环境变量、启动脚本和多个文件。你只需要记住一句话。

核心理念

一个数据源就是一个环境。开发环境写一段,测试环境复制一段,生产环境再复制一段。最终只需要一个 dbhub.toml 配置文件,和一条添加到 Codex 的命令。

最终结构
一个配置文件 dbhub.toml
│
├── dev   开发环境
├── test  测试环境
└── prod  生产环境
02

第一步:创建配置文件

执行以下命令,创建配置目录并编辑配置文件。

terminal · 创建配置示例 · 路径固定
mkdir -p ~/.config/dbhub
vim ~/.config/dbhub/dbhub.toml

把下面内容完整复制进去,按你的实际数据库信息修改占位符:

~/.config/dbhub/dbhub.toml多环境配置模板
# ==============================
# 开发环境
# ==============================

[[sources]]
id = "dev"
description = "MySQL 开发环境"
type = "mysql"
host = "开发数据库地址"
port = 3306
database = "开发数据库名称"
user = "开发数据库用户名"
password = "开发数据库密码"

[[tools]]
name = "execute_sql"
source = "dev"
readonly = true
max_rows = 500

[[tools]]
name = "search_objects"
source = "dev"


# ==============================
# 生产环境
# ==============================

[[sources]]
id = "prod"
description = "MySQL 生产环境,只允许查询"
type = "mysql"
host = "生产数据库地址"
port = 3306
database = "生产数据库名称"
user = "生产数据库只读用户名"
password = "生产数据库密码"

[[tools]]
name = "execute_sql"
source = "prod"
readonly = true
max_rows = 200

[[tools]]
name = "search_objects"
source = "prod"

生产环境务必使用数据库本身的只读账号。readonly = true 是额外保护,不能代替数据库账号权限。

你真正需要修改的地方

每个环境只修改下面六项,其他内容先不要动:

每个环境的必填项六个字段
id = "环境名称"
host = "数据库地址"
port = 3306
database = "数据库名称"
user = "数据库用户名"
password = "数据库密码"

保存文件

  1. 01
    vim 中依次操作

    i 进入编辑模式,粘贴配置内容,按 Esc,输入 :wq 回车保存退出。

  2. 02
    保护配置文件

    这个文件包含数据库密码,不要放进 Git 仓库。

terminal · 设置文件权限仅自己可读写
chmod 600 ~/.config/dbhub/dbhub.toml
03

第二步:添加到 Codex

执行这一条命令,把 DBHub 注册为 Codex 的 MCP Server。

terminal · 注册 MCP一条命令搞定
codex mcp add dbhub -- \
  npx -y @bytebase/dbhub@latest \
  --transport stdio \
  --config "$HOME/.config/dbhub/dbhub.toml"
terminal · 验证安装确认已添加
codex mcp list

如果看到 dbhub 就说明添加成功。第一次启动时 npx 需要下载 DBHub,可能需要等待一会儿。

!
版本固定建议

为了方便首次安装,这里使用了 @latest。确认能够正常连接后,生产使用建议固定具体版本,避免意外升级。

04

第三步:重启 Codex 并测试

重启 Codex 后,分别测试开发环境和生产环境。

  • 重启 Codex,加载 DBHub MCP
  • 分别测试 dev 和 prod 数据源
  • 确认只读限制生效
  • 确认返回行数限制生效
测试 Prompt · 开发环境 请使用 DBHub 的 dev 数据源,列出这个数据库中的所有表,只查询,不要修改数据。
  • 多数据源下,DBHub 会根据 id 生成不同的工具
  • 例如:execute_sql_devsearch_objects_dev
  • 以及:execute_sql_prodsearch_objects_prod
测试 Prompt · 生产环境 请使用 DBHub 的 prod 数据源,列出数据库中的所有表,只查询,不要修改数据。
05

继续查看官方文档

DBHub 配置选项和数据库类型会持续增加,实际接入时以官方文档为准。