开源一个数据库 CLI:dbx
最近把自己平时排查 MySQL 和 Redis 用的一套命令整理成了一个小工具:dbx。
它的定位很简单:用 profile 管理连接信息,把常用数据库操作收口成几条固定命令,方便人直接用,也方便 Codex、Claude Code 这类 AI Agent 直接调用。
项目地址: github.com/jianzhangg/…
它有什么用
- 不用为 MySQL 和 Redis 分别配置多套 MCP
- 对话里不需要反复加载多套工具说明,占用的 token 和上下文都会更小
- 用一套命令统一 MySQL 和 Redis
- 用 YAML 一次性配置多个 profile,MySQL 和 Redis 可以一起管
- 默认输出 JSON,方便脚本和 Agent 消费
- 支持
readonly,适合线上只读排查 - 支持
timeout,避免命令一直挂住
核心命令只有这几条:
dbx profile list
dbx profile show <profile>
dbx ping <profile>
dbx sql <profile> "<sql>"
dbx redis <profile> <command> [args...]
典型场景:
- 查 MySQL 最近几条数据
- 看 Redis key 的值和 TTL
- 用只读 profile 做线上排查
- 让 AI Agent 帮你探活、查数据、核对结果
如果你平时已经在终端里来回切 mysql、redis-cli,那这个工具的价值其实很直接:把最常用的那部分操作统一起来,省得每次都重新切命令和找连接配置。
如果你平时会让 AI Agent 参与排查,这个优势会更明显:不需要再单独找 MySQL MCP、Redis MCP,也不用分别维护不同版本的配置。直接配好一份 dbx 的 profiles,后面就可以统一查 MySQL 和 Redis。
怎么用
1. 安装
npm install -g @jianzhangg/dbx-cli
dbx --help
要求 Node.js >= 18。
2. 初始化配置
dbx config
默认配置路径:
macOS / Linux: ~/.config/dbx/profiles.yml
Windows: %APPDATA%\dbx\profiles.yml
也可以显式指定配置文件:
DBX_CONFIG=/absolute/path/to/profiles.yml dbx profile list
dbx --config /absolute/path/to/profiles.yml profile list
3. 写 profile
profiles:
prod_mysql_ro:
kind: mysql
host: 127.0.0.1
port: 3306
user: readonly
password: secret
database: app
readonly: true
timeout: 30
cache_redis_ro:
kind: redis
url: redis://default:secret@127.0.0.1:6379/0
readonly: true
timeout: 30
建议把只读和可写 profile 分开,比如 *_ro 和 *_rw。这样平时排查就默认走只读,心里会踏实很多。
4. 直接执行
dbx profile list
dbx profile show prod_mysql_ro
dbx ping prod_mysql_ro
dbx sql prod_mysql_ro "select id, status from orders order by id desc limit 10"
dbx redis cache_redis_ro GET session:1
dbx redis cache_redis_ro TTL session:1
readonly 和 timeout
dbx 比较核心的两个能力是 readonly 和 timeout。
readonly: true 时:
- MySQL 只允许
SELECT、SHOW、DESC、DESCRIBE、EXPLAIN、WITH - Redis 只允许只读命令集合,像
GET、MGET、HGETALL、TTL这些可以直接用 - 写命令会被直接拦截
timeout 是 profile 级超时配置,到了时间自动断开,避免命令卡死。对手动排查有用,对 Agent 场景更有用。
给 AI Agent 用
仓库里带了一个给 Codex 用的 skill,装到全局 skills 目录后,Agent 可以直接调用 dbx。
这套方式比拆成多套 MCP 更轻一些,原因也很直接:
- 不用同时维护多个 MySQL / Redis MCP
- 对话上下文里少塞几套工具说明,token 占用会更小
- profile 可以一次配多套,切环境也更方便
- MySQL 和 Redis 可以走同一套使用方式
mkdir -p ~/.codex/skills
cp -R "$(npm root -g)/@jianzhangg/dbx-cli/skills/dbx" ~/.codex/skills/dbx
如果用了自定义 CODEX_HOME,目标目录就是:
$CODEX_HOME/skills/dbx
装好后可以直接这样说:
使用 $dbx 列出当前可用的 profile使用 $dbx ping mysql_test使用 $dbx 查 prod_mysql_ro 最近 10 条订单使用 $dbx 查看 redis_test 里某个 key 的 TTL
总结
dbx 的定位很简单,就是一层给人和 AI Agent 共用的数据库 CLI:
- 不用配多套 MCP
- token 和上下文占用更小
- profile 管理连接
- 多个 profile 一次配置
- MySQL / Redis 统一命令面
- 默认 JSON 输出
- 内置只读保护
- 内置超时控制
如果你平时会让 AI 参与数据库排查,或者你自己就习惯在终端里查库查缓存,这个工具会比较顺手。
GitHub: github.com/jianzhangg/…