详细介绍
DBHub 是一个基于模型上下文协议(MCP)的通用数据库网关,支持多种数据库的连接与操作。通过 DBHub,用户可以使用统一的接口访问 PostgreSQL、MySQL、MariaDB、SQL Server 和 SQLite 等数据库,执行 SQL 查询、管理数据库结构,并具备生成 SQL 和解释数据库元素的能力。DBHub 适用于需要统一访问多种数据库环境的开发者、运维人员及业务分析师。
核心功能
DBHub 提供了多种核心功能,帮助用户高效地操作和管理数据库资源:
- 支持多种数据库资源,包括 schemas、tables_in_schema、table_structure_in_schema 等。
- 集成多种工具,如 Execute SQL、List Connectors 等,支持执行 SQL 查询和列出数据库连接器。
- 具备强大的生成能力,支持 Generate SQL 和 Explain DB Elements 功能,帮助用户生成 SQL 语句并解释数据库元素。
- 支持读写分离模式,提高数据库操作的安全性。
- 内置示例数据库,方便用户快速上手和测试。
安装方法
DBHub 可以通过 Docker 或 NPM 安装,以下是具体的安装步骤:
docker run --rm --init --name dbhub --publish 8080:8080 bytebase/dbhub --transport sse --port 8080 --dsn "postgres://user:password@localhost:5432/dbname?sslmode=disable"或使用 NPM 安装:
pnpm install安装完成后,可以通过以下命令启动 DBHub:
npx @bytebase/dbhub --transport sse --port 8080 --dsn "$DSN"使用方法
DBHub 提供了多种使用方式,包括通过命令行执行 SQL 查询、生成 SQL 语句等。
SELECT * FROM employees;上述命令将返回员工表中的所有记录。
Generate SQL for 'employees' table.该命令将返回创建员工表的 SQL 语句。
此外,DBHub 还支持与 MCP Inspector 工具结合使用,用于调试和测试。以下是使用 PostgreSQL 的 stdio 模式示例:
TRANSPORT=stdio DSN="postgres://user:password@localhost:5432/dbname?sslmode=disable" npx @modelcontextprotocol/inspector node /path/to/dbhub/dist/index.js在 SSE 模式下,首先启动 DBHub 服务:
pnpm dev --transport=sse --port=8080然后在另一个终端启动 MCP Inspector:
npx @modelcontextprotocol/inspector最后连接到 DBHub 服务的 /sse 端点。
使用场景
DBHub 适用于以下场景:
- 需要统一访问多种数据库环境的开发团队。
- 运维人员需要集中管理多个数据库连接。
- 业务分析师需要快速查询和分析不同数据库中的数据。
- 开发人员需要在本地或测试环境中快速搭建数据库连接。
注意事项
在使用 DBHub 时,需要注意以下几点:
- 某些高级功能可能对特定数据库不完全支持。
- DBHub 需要依赖于 MCP 兼容客户端使用。
- 在 Docker 中连接本地数据库时,建议使用
host.docker.internal作为主机地址。 - 可以通过启用只读模式来限制 SQL 执行为只读操作,提高安全性。
DBHub 提供了丰富的功能和灵活的使用方式,帮助用户高效地管理和操作多种数据库资源。