从零开始:MCP数据库助手(三)- 多数据库支持

新小编 2025-12-22 03:15 19 0
2025-12-22 03:15
第1楼

代码已上传github上,这是github仓库地址,如果项目对你有帮助,欢迎点个Star鼓励!

为什么要支持多数据库?

前两章我们只支持SQLite,但现实中的企业环境需要:

  • PostgreSQL - 企业级应用的首选,功能强大
  • MySQL - Web应用最流行的数据库
  • 配置管理 - 一套代码支持多种环境

今天我们要让MCP DataTools从"玩具"变成"工具"!

第一步:项目结构升级

这次的项目结构更加完善:

第二步:依赖升级

首先升级pyproject.toml,添加多数据库支持:

第三步:配置管理系统

创建统一的配置管理系统:

第四步:多数据库连接管理

升级数据库管理器,支持多种数据库:

第五步:MCP服务器架构升级

重要变化:实际代码采用了更灵活的架构,所有工具函数都重新设计为 *_by_url 命名方式,必须显式传入 database_url 参数:

这种设计的优势

  • 真正的多数据库支持:可以同时连接和操作多个不同的数据库
  • 更高的灵活性:每个操作都可以针对不同的数据库实例
  • 无全局状态:避免并发问题,更加线程安全
  • 更好的扩展性:支持未来扩展到更多数据库类型
  • 统一错误处理:通过装饰器统一处理数据库操作错误

第六步:公共工具函数

新增的 utils.py 文件提供了重要的公共功能:

工具函数的作用

  • 路径管理setup_project_path() 解决模块导入问题
  • 错误处理database_operation 装饰器统一处理数据库操作错误
  • 安全处理mask_password() 隐藏连接字符串中的敏感信息

第七步:数据库初始化脚本

第八步:使用 Docker 启动数据库(推荐),应用本地运行

你已在上一步准备好了 init.sql。首次启动容器(数据卷为空)时会自动执行这些脚本。

在日常开发中,建议:

  • 应用代码直接在本地运行(便于调试与迭代)
  • PostgreSQL / MySQL 使用 Docker 启动(避免本机安装与版本差异)

这样既轻量,又能快速切换数据库类型,满足“多数据库支持”的目标。

使用 docker-compose 启动数据库(PostgreSQL + MySQL)

你可以为数据库单独准备一个 compose 文件(例如:docker-compose.db.yml),仅包含 Postgres 与 MySQL 服务:

启动与验证:

使用 docker run 启动单个数据库(不使用 compose)

如果你只需要其中一个数据库:

PostgreSQL:

MySQL:

Windows PowerShell 下将 $(pwd) 改为 ${PWD}

第九步:测试脚本

创建多数据库测试脚本:

第十步:使用指南

安装依赖

启动MCP服务器

第十一步:Cursor配置

配置示例

测试效果

现在你可以测试多数据库功能:

获取数据库信息:

在这里插入图片描述

获取指定数据库的用户信息:

在这里插入图片描述

连接池监控:

在这里插入图片描述

总结与预告

这一篇我们成功实现了PostgreSQL、MySQL、SQLite多数据库支持,加上基础连接池配置、配置管理和使用 Docker 启动数据库环境,让MCP数据库工具从“玩具”升级为真正的生产级工具。

  • 1 / 1 页
敬请注意:文中内容观点和各种评论不代表本网立场!若有违规侵权,请联系我们.