MySQL 与 MCP 协议集成实战:用自然语言操作数据库的完整流程

0 阅读

准备工作:先搭一个能跑的数据库

要让 AI 跟 MySQL 对话,首先得有个数据库。我们新建一个叫 lanyun 的库,里面放三张表:用户、商品、订单——典型的电商模型。

文章配图

create database lanyun;
use lanyun;

文章配图

接着建表。用户表带用户名、邮箱、手机号,都设了唯一约束;商品表有价格和库存;订单表则通过外键关联前两张表,并记录状态(1-待付款,2-已付款,3-已发货,4-已完成,5-已取消)。

所有表都用 InnoDB 引擎和 utf8mb4 字符集,价格字段用 DECIMAL 避免浮点误差。这些细节不是为了炫技,而是确保后续查询和写入不会因为类型或约束问题崩掉。

然后灌数据:10 个用户、8 个商品、15 条订单。比如张三买了小米手机(已完成),李四订了华为(已发货),王五下单 MacBook 但还没付款……订单状态故意覆盖各种情况,方便后面测试筛选条件。

最后手动查一下 SELECT * FROM users LIMIT 10;,确认数据落盘没问题。这一步看似多余,但实际开发中经常因为字符集或权限问题导致插入失败,提前验证能省很多调试时间。

配置 MCP 客户端:让 AI 看到你的数据库

接下来在 VSCode 里装 CodeBuddy 插件,这是目前支持 MCP 协议的主流客户端之一。配置文件是个 JSON,核心是告诉插件怎么连 MySQL:

{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["-y", "@kevinwatt/mysql-mcp"],
      "env": {
        "MYSQL_HOST": "你的IP",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "root",
        "MYSQL_PASS": "密码",
        "MYSQL_DB": "lanyun"
      }
    }
  }
}

这里的关键是 @kevinwatt/mysql-mcp 这个包——它是个中间件,能把 AI 的自然语言指令转成合法的 SQL,再通过标准 MySQL 协议发给数据库。保存配置后,插件会自动拉起这个服务。如果看到状态栏显示“MCP mysql connected”,说明通道打通了。

用自然语言查复杂数据

现在试试让 AI 做点事。比如问它:

找出年龄大于 28 岁、买过 3000 元以上商品、订单创建于 2025 年之后、且没取消的订单,显示用户姓名、手机号、商品名、订单状态和时间,按年龄降序、时间升序排。

AI 收到指令后,会先通过 MCP 获取三张表的结构,然后生成对应的 SQL。实际执行的语句长这样:

SELECT 
    u.username, u.phone, p.name, o.status, o.create_time
FROM orders o
JOIN users u ON o.user_id = u.id
JOIN products p ON o.product_id = p.id
WHERE 
    u.age > 28
    AND p.price > 3000
    AND o.create_time >= '2025-01-01'
    AND o.status != 5
ORDER BY u.age DESC, o.create_time ASC;

image.png

结果返回后,AI 还能顺手导出成 Excel。我们拿这条 SQL 去 MySQL 客户端直接跑一遍,对比两份结果——完全一致。这说明 MCP 不是黑盒,它的逻辑可追溯、可验证。

image.png

让 AI 往数据库里写数据

image.png

读数据只是开始,写入才是难点。试试这个指令:

image.png

往 users 表加五个新用户:qianer(33岁)、songsan(38岁)……注意别跟已有用户名、手机号或邮箱冲突。

image.png

MCP 会生成一条批量 INSERT 语句。如果真有重复(比如不小心写了已存在的手机号),MySQL 会报错,AI 也能把错误信息原样返回,而不是假装成功。

image.png

插入完成后,我们手动查 SELECT * FROM users WHERE id >= 11;(因为之前有 10 条),确认新数据准确入库。字段顺序、值、自增 ID 都对得上。

image.png

为什么这套流程值得试?

image.png

传统做法里,业务人员想查数据得找 DBA 写 SQL,或者自己学语法。现在通过 MCP,只要描述清楚需求,AI 就能生成正确查询,甚至处理导出、绘图等后续动作。

image.png

更重要的是,整个过程透明可控:

image.png

  • 数据库权限由你掌握(配置里的账号密码)
  • AI 生成的 SQL 可审查
  • 错误会如实反馈,不会静默失败

image.png

目前 MCP 生态还在早期,MySQL 是其中一个比较成熟的实现。如果你有内部系统想接入 AI,不妨照着这个流程搭个原型——不用改现有架构,只需加一层协议转换,就能让大模型直接对话你的数据。

image.png

image.png

image.png

image.png

image.png