暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

不懂SQL?用MCP+AI,一句话搞定MySQL查询

1921

最近,AI领域最值得关注的技术之一莫过于MCP(Model Context Protocol)了。

MCP由Claude的母公司Anthropic在2024年底开源发布的技术,它充当AI大模型与外部数据、工具之间的“通用语言”或“万能插座”。

通过MCP,AI大模型可以与外界沟通,获取信息并完成具体任务。

在未来,也许就是依靠主流大模型充当大脑,再借助各种MCP工具,来帮我们完成各种工作。

这几天,我也了解了一些MCP工具,比如爬虫的、处理文件的、操作浏览器的。

也有不少MySQL的MCP工具。

这篇文章,我们就讲一下怎样借助Cline和mysql-mcp-server,来实现自然语言转SQL,从而获取到数据库中的结果。

1 安装Cline

Cline是一个AI编程插件,这款工具主要可以实现:

  • 通过提示词直接生成代码;

  • 通过提示词+MCP完成更多的功能。


打开Vscode,在插件市场搜索:Cline,点击Install。

点击下方按钮信任插件:


2 配置Cline

点击左侧最下方的图标,再点击设置:

配置DeepSeek的API key:

点击Let's go!

当然,如果没有DeepSeek官方的API key,也可以使用硅基流动的API key。

API Provider选择:“OpenAI Compatible”

Base URL填:https://api.siliconflow.cn/

API Key 填:在硅基流动官网申请的API key

Mode ID 填:deepseek-ai/DeepSeek-R1

再点击Done。


3 安装mysql-mcp-server

我们在VS Code的窗口把mysql-mcp-server项目下载下来,执行:

    git clone https://github.com/dpflucas/mysql-mcp-server.git

    进入到项目文件夹:

      cd mysql-mcp-server

      安装依赖并构建,执行:

        npm install
        npm run build

        再点击CLINE里的MCP Servers,如下图这个按钮:

        点击Installed,再点击Configure MCP Servers

        就可以看到有个配置文件cline_mcp_settings.json

        可以使用推荐的配置(见:https://github.com/dpflucas/mysql-mcp-server):

          {
            "mcpServers": {
              "mysql": {
                "command""node",
                "args": ["D:\\mcp\\mysql-mcp-server\\build\\index.js"],
                "env": {
                  "MYSQL_HOST""your-mysql-host",
                  "MYSQL_PORT""3306",
                  "MYSQL_USER""your-mysql-user",
                  "MYSQL_PASSWORD""your-mysql-password",
                  "MYSQL_DATABASE""your-default-database"
                },
                "disabled"false,
                "autoApprove": []
              }
            }
          }

          同时,也要在我们克隆下来的项目里新增.env文件,并配置如下内容:

            # Connection parameters
            MYSQL_HOST=localhost
            MYSQL_PORT=3306
            MYSQL_USER=your-mysql-user
            MYSQL_PASSWORD=your-mysql-password
            MYSQL_DATABASE=your-default-database
            # Advanced connection pool parameters
            MYSQL_CONNECTION_LIMIT=10     # Maximum number of connections in the pool (default: 10)
            MYSQL_QUEUE_LIMIT=0           # Maximum number of connection requests to queue (default: 0, unlimited)
            MYSQL_CONNECT_TIMEOUT=10000   # Connection timeout in milliseconds (default: 10000)
            MYSQL_IDLE_TIMEOUT=60000      # How long a connection can be idle before being released (in milliseconds)
            MYSQL_MAX_IDLE=10             # Maximum number of idle connections to keep in the pool

            记得都改成你要连接的MySQL。


            4 测试

            配置完成后,在Cline聊天框,输入你的请求,就能返回数据库里的数据,比如:

            返回的结果是:

            我们再来测试具体的SQL,比如新建一张测试表,假如是销量信息的,并写入一些测试数据:

              CREATE TABLE product_sales (
                 id int auto_increment PRIMARY KEY comment '主键',
                 product_name varchar(255) comment '商品名',
                 price DECIMAL(10,2) comment '商品单价',
                 quantity int comment '销售量',
                 sale_date date comment '销售日期',
                 key idx_product_name(product_name)
              );
              INSERT INTO product_sales (product_name, price, quantity, sale_date) 
              VALUES 
              ('iPhone 12'899910'2023-04-21'),
              ('iPad Pro'79995'2023-04-21'),
              ('MacBook Pro'149993'2023-04-22'),
              ('AirPods Pro'219920'2023-04-22'),
              ('Apple Watch Series 7'32998'2023-04-22'),
              ('iPhone 11'599915'2023-04-23'),
              ('iPad Air'46997'2023-04-23'),
              ('MacBook Air'99994'2023-04-24'),
              ('AirPods 2'129925'2023-04-24'),
              ('Apple Watch SE'259912'2023-04-25');

              再到Cline询问:

              销售信息表是product_sales,求出2023-04-22的总销售额:

              就会产生SQL,让你确认:

              点击Approve,就能生成结果。

              整个实现过程,就是:用户输入 → VSCode 插件 (Cline) → mysql-mcp-server → MySQL 数据库 → 查询结果


              5 更多MySQL相关的MCP工具

              可以去MCP工具合集里搜索MySQL关键字,工具集地址:

              https://smithery.ai

              MySQL相关的MCP还是挺多的:

              其他的大家感兴趣也可以试试看。


              更多DBA技术交流,欢迎加入我们的学习圈子【DBA驿站】。


              文章转载自MySQL数据库联盟,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论