深度解析 MySQL 与 MCP 集成:从环境构建到 AI 驱动的数据交互全流程

深度解析 MySQL 与 MCP 集成:从环境构建到 AI 驱动的数据交互全流程

前言

在当前大语言模型(LLM)应用开发的浪潮中,MCP(Model Context Protocol)协议正在成为连接 AI 模型与本地数据设施的关键桥梁。本文将以 MySQL 数据库为例,详细拆解如何通过 MCP 协议让 AI 模型直接操作关系型数据库,涵盖从服务器发现、数据库架构设计、数据初始化、MCP 配置文件编写到复杂自然语言查询与写入的全过程。

第一部分:MCP 服务器的发现与配置获取

在进行任何数据交互之前,首要任务是确立连接协议与服务源。通过蓝耘 MCP 广场,开发者可以快速检索并获取所需的 MCP 服务器配置。

在搜索栏输入 mysql 关键字,系统会立即检索出相关的 MCP 服务器资源。如下图所示,搜索结果中清晰展示了 MySQL 对应的 MCP 服务卡片。

image.png

点击选中该 MCP 服务器后,界面会跳转至详细的配置详情页。此页面至关重要,它提供了后续在客户端(如 VSCode CodeBuddy 插件)中配置连接所需的 JSON 结构与参数说明,包括环境依赖和启动命令。

image.png

第二部分:数据库基础设施构建

在配置 MCP 连接之前,必须确保底层的 MySQL 数据库环境已经就绪,并且存在可供操作的数据实体。以下操作展示了如何从零开始构建一个名为 lanyun 的数据库实例。

2.1 创建数据库

首先,通过数据库管理工具连接到 MySQL 实例,并执行基础的 DDL(数据定义语言)命令来创建数据库。

createdatabase lanyun;use lanyun;

create database lanyun; 语句用于并在存储系统中初始化一个新的命名空间,随后 use lanyun; 命令将当前的会话上下文切换至该数据库,确保后续的建表与数据插入操作均作用于正确的范围内。

下图展示了该命令执行前的界面状态,此时尚未建立数据库连接。

image.png

执行上述 SQL 语句后,控制台反馈执行成功。此时,一个名为 lanyun 的数据库已经存在于 MySQL 实例中。

image.png

本次演示环境的基础配置参数如下:

  • 用户:root(拥有最高权限,适合测试环境)
  • 数据库名:lanyun
  • 服务端口:3306(MySQL 默认标准端口)

2.2 数据表结构设计(Schema Design)

为了验证 MCP 的复杂查询能力,需要构建一个包含关联关系的业务数据模型。这里设计了三张核心表:users(用户)、products(商品)和 orders(订单),它们之间通过外键构成典型的电商业务模型。

请执行以下 SQL 语句来创建表结构:

-- 用户表CREATETABLEIFNOTEXISTS`users`(`id`INTPRIMARYKEYAUTO_INCREMENTCOMMENT'用户ID',`username`VARCHAR(50)NOTNULLUNIQUECOMMENT'用户名',`email`VARCHAR(100)UNIQUECOMMENT'邮箱',`phone`VARCHAR(20)UNIQUECOMMENT'手机号',`age`TINYINTUNSIGNEDCOMMENT'年龄',`create_time`DATETIMEDEFAULTCURRENT_TIMESTAMPCOMMENT'创建时间')ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COMMENT='用户信息表';-- 商品表CREATETABLEIFNOTEXISTS`products`(`id`INTPRIMARYKEYAUTO_INCREMENTCOMMENT'商品ID',`name`VARCHAR(100)NOTNULLCOMMENT'商品名称',`price`DECIMAL(10,2)NOTNULLCOMMENT'商品价格',`stock`INTNOTNULLDEFAULT0COMMENT'库存',`category`VARCHAR(50)COMMENT'商品分类',`create_time`DATETIMEDEFAULTCURRENT_TIMESTAMPCOMMENT'创建时间')ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COMMENT='商品信息表';-- 订单表CREATETABLEIFNOTEXISTS`orders`(`id`INTPRIMARYKEYAUTO_INCREMENTCOMMENT'订单ID',`user_id`INTNOTNULLCOMMENT'用户ID',`product_id`INTNOTNULLCOMMENT'商品ID',`quantity`INTNOTNULLDEFAULT1COMMENT'购买数量',`total_price`DECIMAL(10,2)NOTNULLCOMMENT'订单总价',`status`TINYINTNOTNULLDEFAULT1COMMENT'订单状态:1-待付款,2-已付款,3-已发货,4-已完成,5-已取消',`create_time`DATETIMEDEFAULTCURRENT_TIMESTAMPCOMMENT'创建时间',FOREIGNKEY(`user_id`)REFERENCES`users`(`id`),FOREIGNKEY(`product_id`)REFERENCES`products`(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COMMENT='订单信息表';

技术细节解析:

  1. 引擎选择:所有表均指定 ENGINE=InnoDB,这是为了支持事务处理(ACID)和行级锁定,对于订单系统至关重要。
  2. 字符集:使用 utf8mb4 字符集,能够兼容包括 Emoji 在内的所有 Unicode 字符。
  3. 约束设计
    • users 表中,usernameemailphone 均设置了 UNIQUE 唯一约束,防止重复注册。
    • orders 表通过 FOREIGN KEY 严格定义了引用完整性,确保订单必须归属于存在的用户和存在的商品。
  4. 数据类型
    • 价格字段使用 DECIMAL(10,2) 而非 FLOAT,以避免浮点数计算时的精度丢失问题。
    • 状态字段使用 TINYINT,节省存储空间。

执行上述 DDL 语句后,数据库表结构初始化完成。

image.png

2.3 初始化测试数据

为了让 MCP 能够检索到有意义的内容,需要向表中预置一定量的模拟数据。

2.3.1 插入用户数据

插入 10 条典型的用户记录,涵盖不同的年龄段和联系方式。

INSERTINTO`users`(`username`,`email`,`phone`,`age`)VALUES('zhangsan','[email protected]','13800138000',25),('lisi','[email protected]','13800138001',30),('wangwu','[email protected]','13800138002',22),('zhaoliu','[email protected]','13800138003',28),('sunqi','[email protected]','13800138004',35),('zhouba','[email protected]','13800138005',26),('wujian','[email protected]','13800138006',29),('chenshi','[email protected]','13800138007',32),('yangjiu','[email protected]','13800138008',24),('huangshi','[email protected]','13800138009',31);

执行结果如下图所示,显示 10 行数据受影响,且无重复键错误。

image.png
2.3.2 插入商品数据

插入 8 条商品数据,涵盖手机、电脑、家电等不同分类,并设置不同的价格梯队。

INSERTINTO`products`(`name`,`price`,`stock`,`category`)VALUES('小米14 Pro',4999.00,200,'手机'),('华为Mate 60 Pro',5999.00,150,'手机'),('苹果MacBook Pro',12999.00,80,'笔记本电脑'),('联想拯救者Y9000P',8999.00,100,'笔记本电脑'),('大疆Mini 4 Pro',3799.00,60,'无人机'),('索尼WH-1000XM5',2499.00,120,'耳机'),('小米空气净化器4 Pro',899.00,180,'智能家居'),('美的电饭煲5L',399.00,250,'家电');

执行状态如下,商品信息已成功存入数据库。

image.png
2.3.3 插入订单数据

这是最关键的一步,因为它建立了用户与商品之间的联系。插入 15 条订单记录,覆盖各种订单状态(待付款、已完成、已取消等)。

INSERTINTO`orders`(`user_id`,`product_id`,`quantity`,`total_price`,`status`)VALUES(1,1,1,4999.00,4),-- 张三购买小米14 Pro,已完成(1,6,1,2499.00,2),-- 张三购买索尼耳机,已付款(2,2,1,5999.00,3),-- 李四购买华为Mate 60 Pro,已发货(3,3,1,12999.00,1),-- 王五购买苹果MacBook Pro,待付款(4,4,1,8999.00,4),-- 赵六购买联想拯救者,已完成(5,5,1,3799.00,2),-- 孙七购买大疆无人机,已付款(6,7,2,1798.00,3),-- 周八购买2台小米净化器,已发货(7,8,1,399.00,1),-- 吴九购买美的电饭煲,待付款(8,1,2,9998.00,4),-- 陈十购买2台小米14 Pro,已完成(9,2,1,5999.00,5),-- 杨九购买华为Mate 60 Pro,已取消(10,3,1,12999.00,2),-- 黄十购买苹果MacBook Pro,已付款(2,6,1,2499.00,4),-- 李四购买索尼耳机,已完成(3,7,1,899.00,3),-- 王五购买小米净化器,已发货(4,8,3,1197.00,1),-- 赵六购买3个美的电饭煲,待付款(5,5,2,7598.00,2);-- 孙七购买2台大疆无人机,已付款

该操作不仅填充了数据,还隐式验证了外键约束的正确性(即 user_idproduct_id 必须存在于前两张表中)。

image.png

2.4 数据验证

在接入 MCP 之前,手动执行一条查询语句以确保数据落盘无误。

SELECT*FROM`users`LIMIT10;

查询结果如下,可以清晰地看到之前插入的 10 位用户信息,包含 ID、用户名、邮箱等字段。

image.png

至此,数据库层面的准备工作全部完成,数据状态健康且结构完整。

第三部分:MCP 连接配置与环境启动

接下来的核心步骤是在 VSCode 中配置 MCP 客户端(这里使用 CodeBuddy 插件),使其能够通过标准协议与 MySQL 数据库通信。

3.1 JSON 配置详解

在 VSCode 的 CodeBuddy 配置文件中,输入以下 JSON 代码。这段代码定义了一个名为 mysql 的 MCP 服务器实例。

{"mcpServers":{"mysql":{"command":"npx","args":["-y","@kevinwatt/mysql-mcp"],"env":{"MYSQL_HOST":"host","MYSQL_PORT":"3306","MYSQL_USER":"root","MYSQL_PASS":"passwd","MYSQL_DB":"lanyun"}}}}

参数深入解析:

  • command: “npx”:表示使用 Node.js 的包执行器来运行 MCP 服务器。
  • args: 指定了要执行的具体包名 @kevinwatt/mysql-mcp-y 参数用于自动确认安装提示。这个包本身就是一个实现了 MCP 协议的中间件,负责将 AI 的自然语言指令或函数调用转化为 MySQL 协议包。
  • env (环境变量):这是最关键的部分,定义了连接数据库所需的凭证。
    • MYSQL_HOST: 数据库主机地址(此处需替换为实际 IP 或 hostname)。
    • MYSQL_PORT: 端口,与前文配置的 3306 一致。
    • MYSQL_USER / MYSQL_PASS: 认证信息。
    • MYSQL_DB: 指定连接 lanyun 数据库。

下图展示了将代码填入配置文件时的界面状态。

image.png

3.2 服务连接确认

配置保存后,插件会自动尝试启动 MCP 服务器。当连接成功建立时,界面会给予明确的反馈。

image.png

MCP 架构的优势在于其透明性。在下图中,系统清晰地展示了 MCP 服务器的运行状态和可用工具列表,表明 AI 现在已经具备了“看到”并“操作”该数据库的能力。

image.png

第四部分:AI 驱动的复杂数据查询

环境搭建完毕后,现在进入实际应用阶段。我们将演示如何通过自然语言让 AI 执行复杂的多表关联查询,并进行数据导出。

4.1 自然语言指令

向 MCP 客户端发送以下包含复杂逻辑的自然语言请求:

1. 查询目标:用户姓名、手机号、购买的商品名称、订单状态、订单创建时间 2. 筛选条件: - 用户年龄大于28岁 - 商品价格大于3000元 - 订单创建时间在2025年1月1日之后 - 订单状态不是“已取消”(status≠5) 3. 排序需求:先按用户年龄降序,再按订单创建时间升序 

这个请求涉及到了 usersproductsorders 三张表的连接(JOIN),以及多重 WHERE 子句和复合 ORDER BY 排序。

4.2 执行过程与工具调用

AI 接收到指令后,首先通过 MCP 协议获取数据库 Schema,然后构建查询逻辑。下图展示了 AI 正在调用 MCP 工具获取数据,并生成 Python 代码以处理数据导出。

image.png

4.3 结果产出

AI 不仅执行了查询,还利用 Python 环境将结果生成为 Excel 文件。下图展示了生成的 Excel 表格内容,数据结构清晰,完全符合查询要求。

image.png

4.4 SQL 逻辑反查

为了验证 AI 操作的准确性,我们可以查看其生成的底层 SQL 代码。AI 构建的 SQL 如下:

SELECT u.username AS 用户姓名, u.phone AS 手机号, p.name AS 商品名称, o.statusAS 订单状态, o.create_time AS 订单创建时间, u.age AS 用户年龄 -- 排序需要,可根据需求决定是否保留在查询结果中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-- 用户年龄大于28岁AND p.price >3000-- 商品价格大于3000元AND o.create_time >='2025-01-01 00:00:00'-- 订单创建时间在2025年1月1日之后AND o.status!=5-- 订单状态不是已取消ORDERBY u.age DESC,-- 先按用户年龄降序 o.create_time ASC;-- 再按订单创建时间升序

这段 SQL 逻辑严密:

  1. 使用了 JOIN 正确关联了三张表。
  2. WHERE 子句精准对应了所有自然语言中的筛选条件。
  3. ORDER BY 正确实现了复合排序逻辑。

将此 SQL 语句直接在 MySQL 客户端中执行,结果如下图所示。对比可以发现,数据库直接查询的结果与 MCP 导出的 Excel 数据完全一致,证明了 MCP 在处理复杂业务逻辑时的可靠性。

image.png

第五部分:AI 驱动的数据写入操作

除了查询(Read),MCP 同样支持数据写入(Write)操作。以下演示如何通过自然语言批量插入新用户。

5.1 插入指令

发送如下指令:

请基于MySQL数据库执行以下数据插入操作: 1. 目标表:`users`(用户表) 2. 插入字段:`username`(用户名)、`email`(邮箱)、`phone`(手机号)、`age`(年龄) 3. 插入数据: - ('qianer', '[email protected]', '13800138010', 33) - ('songsan', '[email protected]', '13800138011', 38) - ('lixsi', '[email protected]', '13800138012', 29) - ('wangwu_new', '[email protected]', '13800138013', 40) - ('chenliu', '[email protected]', '13800138014', 35)4. 执行要求: - 确保SQL语法符合MySQL规范,字段和值匹配无误 - 执行插入操作后,返回插入结果(如受影响行数、是否成功) - 若存在重复数据(如用户名/手机号/邮箱重复),给出错误处理建议 

5.2 执行反馈

MCP 服务器接收指令并将其转换为 INSERT 语句执行。界面反馈显示操作成功完成。

image.png

5.3 写入验证

最后,回到 MySQL 数据库进行验证。由于之前的测试数据 ID 到 10,新插入的数据 ID 应从 11 开始。

执行验证 SQL:

-- 查询新增的5个用户(ID从11开始,对应本次插入)SELECT*FROM`users`WHERE id >=11;

结果如下图所示,5 条新用户数据已精确无误地存入数据库中,且字段对应关系完全正确。

image.png

总结

通过上述流程,本文详细展示了如何利用蓝耘 MCP 广场提供的 MySQL MCP 服务器,实现从数据库搭建、配置编写到 AI 自然语言交互的完整闭环。MCP 协议极大地降低了 AI 接入传统数据设施的门槛,使得复杂的 SQL 编写和数据处理工作可以通过自然语言指令高效完成。

对于希望探索更多 MCP 应用场景的开发者,可以访问蓝耘控制台体验更多服务:

https://console.lanyun.net/#/register?promoterCode=0131

Read more

LLaMA-Factory合并LoRA适配器完整指南

LLaMA-Factory 合并 LoRA 适配器完整指南 在大模型落地的实战中,一个常见的痛点是:明明只微调了少量参数,部署时却还得背负整个基础模型 + LoRA 插件的双重重担。启动慢、依赖多、运维复杂——这些问题让原本轻量高效的 PEFT 方法显得有些“名不副实”。 而真正的生产级解决方案,应该是把训练成果固化下来:将 LoRA 的增量更新永久融合进原始模型,生成一个独立、自包含、开箱即用的新模型。这不仅是工程上的简化,更是从实验走向服务的关键一步。 LLaMA-Factory 提供了一条极为简洁的路径来实现这一目标——通过一条 export 命令和一个 YAML 配置文件,就能完成跨架构、跨模态、安全可靠的 LoRA 合并。本文将带你深入这个过程的每一个细节,避开常见陷阱,并分享一些提升效率的实用技巧。 核心命令:一键导出合并模型 整个流程的核心就是这条命令: llamafactory-cli export examples/merge_lora/

AIGC-Fooocus部署实践:从本地手动配置到云端一键启用的深度剖析

AIGC-Fooocus部署实践:从本地手动配置到云端一键启用的深度剖析

摘要: 本文旨在为人工智能生成内容(AIGC)领域的爱好者和开发者提供一份详尽的Fooocus部署指南。Fooocus作为一款基于Gradio的开源图像生成软件,凭借其简化的操作和高质量的输出,受到了广泛关注。我们将通过两种截然不同的部署路径——传统的本地手动环境配置与现代化的云平台一键部署——来全面探索Fooocus的落地过程。本文将深入剖析手动部署中的每一个步骤、每一条命令及其背后的技术逻辑,详细记录可能遇到的环境冲突与解决方案,并将其与云端部署的流畅体验进行客观对比,为读者在不同场景下选择最合适的部署策略提供坚实的技术参考。 第一章:引言——Fooocus与AIGC部署的挑战 随着Stable Diffusion等底层模型的开源,AIGC技术,特别是文生图领域,迎来了爆发式的增长。各种应用和WebUI层出不穷,极大地降低了普通用户接触和使用前沿AI模型的门槛。在众多工具中,由lllyasviel(ControlNet的作者)开发的Fooocus,以其独特的哲学脱颖而出。Fooocus的设计理念是“化繁为简”,它在保留Stable Diffusion XL(SDXL)强大能力的

3个开源ASR模型横评:Whisper实测表现如何?云端2小时低成本完成

3个开源ASR模型横评:Whisper实测表现如何?云端2小时低成本完成 你是不是也遇到过这样的问题:公司要做智能客服系统,需要语音识别功能,但市面上的方案要么贵得离谱,要么效果不理想。作为初创团队,既没有GPU服务器,又不想花大价钱买按调用量计费的API服务,怎么办? 别急,今天我就带你用不到2小时、几十元成本,在云端完成三个主流开源ASR(自动语音识别)模型的实测对比,重点看看大家热议的 Whisper 在中文场景下的真实表现到底怎么样。 我们这次测试的目标非常明确: * 选型适合中文客服场景的语音识别模型 * 对比 Whisper、WeNet 和 Paraformer 三个开源ASR模型的准确率和响应速度 * 全程使用ZEEKLOG星图平台提供的预置镜像,在无本地GPU的情况下快速部署验证 为什么是这三个模型?简单说: * Whisper:OpenAI出品,多语言支持强,号称“开箱即用”,社区热度极高 * WeNet:国内高校与企业联合开发,专为工业级中文语音识别优化,广泛用于电话客服、会议转录等场景 * Paraformer:达摩院推出,非自回归架构,速

展望 AIGC 前景:通义万相 2.1 与蓝耘智算平台共筑 AI 生产力高地

展望 AIGC 前景:通义万相 2.1 与蓝耘智算平台共筑 AI 生产力高地

引言 在 AI 视频生成领域不断创新突破的当下,通义万相 2.1这款开源的视频生成 AI 模型一经发布便引发了广泛关注。其表现十分亮眼,发布当日便强势登顶VBench排行榜,将Sora、Runway等行业内的知名强大对手甩在身后,彰显出不容小觑的强劲实力与巨大潜力。 通义万相 2.1模型具备诸多令人赞叹的特性。它所生成的视频分辨率达到了1080P,并且在视频时长方面没有任何限制。更为厉害的是,它能够精准地模拟自然动作,甚至还可以对物理规律进行高度还原,这些卓越的能力无疑为 AIGC 领域带来了前所未有的变革,堪称具有里程碑意义的重大突破。 借助蓝耘智算平台,用户可以便捷地对通义万相 2.1 模型进行部署,进而打造出属于自己的个性化 AI 视频生成工具。今天,我会带领大家深入了解通义万相 2.1的各项强大功能,同时也会详细分享怎样通过蓝耘智算平台快速上手,开启 AI 视频生成的奇妙之旅。 蓝耘智算平台:开启高性能计算新时代 1. 平台概览 蓝耘智算平台作为专为满足高性能计算需求精心打造的云计算平台,以强大计算力和灵活服务能力脱颖而出。其依托先进的基础设施,配备大规模GPU算力