对于不熟悉 SQL 的非技术人员,每次需要查询或分析数据时,都得麻烦开发人员帮忙写 SQL,非常不方便。
今天给大家演示 MySQL MCP 的使用案例,用自然语言操作数据库。一起来看看吧。
一、什么是 MySQL MCP?
MySQL MCP Server 提供了一系列工具,允许我们和大模型交互时,用自然语言来操作数据库,比如"创建一个商品表"、"查询本月销售额"等,不需要手写 SQL 语句!
这项功能特别适合:
- 快速进行数据库原型设计和测试
- 学习和练习 SQL 操作
- 日常开发中的数据库管理工作
我们先做一些准备工作,然后进入实际操作环节。
二、准备工作
开始之前,需要准备以下环境:
- 安装 VSCode:如果还没安装,可以从官方网站下载。
- 安装 Cline 插件:在 VSCode 扩展市场搜索 Cline 并安装。
- 准备一个 MySQL 测试数据库。
我个人喜欢用 Docker 来快速搭建测试环境,如果你也习惯用 Docker,可以执行下面的命令来启动一个 MySQL 容器:
docker run -d --name mysql-mcp -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=mcp-test -p 3306:3306 mysql:lts
该命令会创建一个 mysql-mcp
容器,root 密码设为 123456
,并自动创建一个 mcp-test
数据库。
如果你已经有了本地或远程的 MySQL 环境,可以直接用。
三、配置 MySQL MCP Server
接下来,我们开始为 Cline 添加 MySQL MCP Server
。步骤如下:
- 打开配置文件
cline_mcp_settings.json
(点击 Cline 窗口顶部 “+” 按钮后面的 “MCP Server” 按钮,然后依次选择 “Installed” > “Configure MCP Servers”)。 - 添加以下配置内容:
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["-y", "@f4ww4z/mcp-mysql-server"],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "123456",
"MYSQL_DATABASE": "mcp-test"
},
"transportType": "stdio",
"autoApprove": [
"list_tables",
"connect_db",
"execute",
"query",
"describe_table"
]
}
}
}
将上面的配置拷贝到你的 mcpServers
节点下即可。
注意:要将我的数据库连接信息替换为你的。
我配置了 autoApprove
选项指定了一些命令,是希望对这些命令自动执行,不想每次都手动确认。
配置完成后保存,检查 MySQL MCP Server 是否启动成功:
如果看到按钮是开启状态,并且有一个绿色小点,说明服务已经正常运行了。现在我们就可以使用 MySQL MCP 啦!
四、MySQL MCP 实战演练
准备工作都搞定了,终于可以开始实际操练了。
先点击 Cline 窗口顶部的 “+” 按钮开启一个新的会话。
1. 了解可用的 MCP 服务
首先,我们先问下 Cline 当前有哪些 MCP 服务可用。
提问:帮我查下有哪些 MCP 服务可用?
接着,我们来了解一下 MySQL MCP 具体能做点什么?
提问:请问 MySQL MCP 的功能有哪些?
2. 查看数据库表
现在,让我们看看数据库中有哪些表。
提问:数据库中有哪些表?
由于我是从空库开始测试的,所以还没有任何表。接下来,我们需要创建一些表和数据。
3. 创建商品表并添加测试数据
提问:帮我创建一个简单的商品表,并填充一些测试数据。
是不是很神奇?我只是用自然语言描述了需求,MySQL MCP 就自动帮我创建了表并插入了测试数据。
提问:商品表中有多少条记录?
列出所有的商品,并以表格的形式显示
4. 创建订单相关表
接下来,我们继续创建订单表和订单明细表:
提问:帮我创建一个简单的订单表和订单明细表
它帮我生成的表名为 order_items
,我不喜欢这个命名,把它改为 order_details
:
提问:我喜欢的订单明细表名为 order_details
然后,我们来添加一些订单测试数据:
提问:帮我创建一些订单测试数据
5. 修改表结构和数据
假设我们的业务需求变了,需要删除所有订单信息,并且在订单表中增加商品 ID 和商品名称列:
提问:删除所有的订单信息,新增商品 id 和商品名称列
然后,我们再添加一些新的测试记录:
提问:新增几条订单测试记录
6. 查看表结构和添加注释
现在,我想了解一下订单表的具体定义:
提问:订单表的定义?
为了让表结构更清晰,我们可以为所有字段添加详细的中文注释:
提问:请为所有字段添加详细的中文注释
7. 进行数据分析
有了这些数据,我们可以进行一些简单的数据分析,比如计算本月的销售额:
提问:本月销售额是多少?
其他更多的分析,我就不演示了,感兴趣的小伙伴可以自己动手试试。
8. 查看服务器状态
最后,我们还可以查看 MySQL 服务器的主要状态信息:
提问:我想查看下当前服务器的主要状态信息
以上只是抛砖引玉,不再一一演示,MySQL 的命令很多,更多用法等你来探索。
五、总结
本教程演示了一种新的工作方式:用自然语言操作 MySQL 数据库。
这种方式特别适合快速原型设计、学习数据库和日常数据库管理工作,也非常适合不熟悉 SQL 的非技术人员,如产品或运营的小伙伴查询数据用,再也不用经常麻烦开发人员帮忙写 SQL 了。
赶紧按照教程配置试一试吧,体验一下"对话式操作数据库"的乐趣。
有问题或想法,欢迎在评论区交流。我会继续分享更多 MCP 使用技巧,敬请期待!
希望这篇文章对你有帮助。