一、前言:为什么需要MCP协议?
在应用开发中,数据库是核心数据存储引擎。传统开发需手动编写SQL语句或使用ORM框架,但学习成本高且效率低。MCP协议(模型上下文协议)的出现,让开发者能通过自然语言或API直接操作数据库,无需深入数据库细节。本文将结合Cursor和DBHub MCP服务,手把手教你如何用AI工具连接并操作MySQL数据库,实现高效开发!


二、技术背景:MCP协议与DBHub的协同作用

  1. 什么是MCP协议?
    MCP(Model Context Protocol)是标准化协议,允许AI模型与外部工具(如数据库、API、文件系统)安全交互。其核心优势:
  • 标准化接口:统一调用方式,支持多数据库类型。
  • 动态工具发现:AI能自动识别可用工具,按需调用。
  • 安全隔离:数据交互通过本地进程完成,避免敏感信息泄露。
  1. DBHub:跨数据库的MCP服务器
    DBHub是支持MCP协议的通用数据库网关,可连接MySQL、PostgreSQL、SQL Server等多种数据库。它通过以下方式简化开发:
  • 统一接入:屏蔽不同数据库差异,用统一API操作。
  • 自然语言交互:AI能解析用户需求生成SQL语句。
  • 安全控制:支持细粒度权限管理,防止越权操作。

三、实战步骤:从环境搭建到操作数据库
Step 1:环境准备

  1. 安装工具:
    • Cursor:某AI客户端(支持MCP协议)。
    • MySQL数据库:本地或云服务器(如阿里云RDS)。
    • DBHub:MCP服务器,通过Docker或NPM安装。
  2. 创建测试数据库:
    CREATE DATABASE test_db;
    CREATE TABLE users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(50),
        email VARCHAR(100),
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
    

Step 2:配置DBHub MCP服务器

  1. Docker部署DBHub(推荐):
    docker run --init --name dbhub \
      -p 8080:8080 \
      bytebase/dbhub \
      --transport sse \
      --port 8080 \
      --dsn "mysql://:@:3306/test_db?sslmode=disable"
    
    注:替换、``为实际值。
  2. 在Cursor中添加MCP服务器:
    • 打开Cursor → 设置 → MCP服务器 → 新增服务器。
    • 输入配置:
      {
        "mcpServers": {
          "mysql": {
            "command": "npx",
            "args": ["@modelcontextprotocol/server-mysql"],
            "env": {
              "MYSQL_HOST": "localhost",
              "MYSQL_USER": "root",
              "MYSQL_PASSWORD": "123456",
              "MYSQL_DATABASE": "test_db"
            },
            "transportType": "stdio",
            "autoApprove": ["list_tables", "execute", "query"]
          }
        }
      }
      

Step 3:用自然语言操作数据库

  1. 查询数据:
    • 输入指令:查询test_db中的users表,返回所有用户信息。
    • Cursor自动调用DBHub生成并执行SQL:
      SELECT * FROM users;
      
    • 结果以表格形式返回。
  2. 插入数据:
    • 输入指令:向users表添加一个新用户,姓名为Bob,邮箱为bob@example.com。
    • Cursor生成SQL并执行:
      INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
      
  3. 复杂查询:
    • 输入指令:统计users表中2025年注册的用户数量。
    • Cursor生成并执行SQL:
      SELECT COUNT(*) FROM users WHERE created_at BETWEEN '2025-01-01' AND '2025-12-31';
      

四、常见问题与优化技巧
Q1:连接失败或指示灯变红?

  • 检查配置:确认MySQL地址、用户名、密码是否正确。
  • 日志排查:查看Cursor终端输出的异常信息,常见问题包括端口冲突或权限不足。
    Q2:如何实现批量操作?
  • 输入指令:批量插入10条用户数据,姓名随机生成,邮箱格式为.test@example.com。
  • Cursor会自动生成循环逻辑并执行批量插入。
    Q3:如何导出查询结果为文件?
  • 输入指令:将users表的数据导出为CSV文件,保存到桌面。
  • DBHub会调用本地工具生成文件并返回路径。

五、总结:MCP协议如何提升开发效率?
通过本文,你已掌握:

  1. 环境搭建:从安装工具到配置MCP服务器的全流程。
  2. 自然语言操作:用简单指令完成增删改查。
  3. 扩展能力:通过DBHub支持多数据库类型。
Logo

一站式 AI 云服务平台

更多推荐