以下是Windows环境下MCP Server与MySQL数据库的关联配置指南,结合最新技术实践与安全规范:

一、核心架构设计

  1. 技术栈选择
    • MCP Server:mysql-mcp-server
    • 数据库驱动:pymysql(Python 3.10+)
    • 客户端工具:Cursor、Claude Desktop、Cline(推荐Cursor)
  2. 架构图
    [用户] → [大模型] → [MCP Server] → [MySQL]
    
    • MCP协议:通过STDIO或SSE协议实现双向通信
    • 安全机制:SSL加密(需MySQL配置)+ 专用用户权限隔离

二、关联步骤(详细版)

1. 准备MySQL环境

-- 创建专用用户(推荐)
CREATE USER 'mcp_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
-- 授权(仅限必要权限)
GRANT SELECT, INSERT, UPDATE, DELETE ON your_database.* TO 'mcp_user'@'localhost';
FLUSH PRIVILEGES;

2. 安装MCP Server

# 安装依赖
pip install mysql-mcp-server pymysql uv
# 下载示例代码
git clone https://github.com/xwb602625136/mysql_mcp_server.git
cd mysql_mcp_server\src\studio_mcp

3. 配置连接参数

# 创建.env文件(UTF-8编码)
New-Item .env -Force
Set-Content .env @"
# MySQL配置
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=mcp_user
MYSQL_PASSWORD=StrongPassword123!
MYSQL_DATABASE=your_database
# MCP服务配置
MCP_PORT=9000
MCP_TRANSPORT=stdio  # 或sse
"@

4. 启动服务

# STDIO模式(推荐)
uv run operatemysql.py
# SSE模式(支持长连接)
uv run operatemysql.py --transport sse --port 9000

5. 客户端配置(以Cursor为例)

{
  "mcp": {
    "servers": {
      "mysql_mcp": {
        "command": "python",
        "args": ["-m", "mysql_mcp_server"],
        "env": {
          "MYSQL_HOST": "localhost",
          "MYSQL_PORT": "3306",
          "MYSQL_USER": "mcp_user",
          "MYSQL_PASSWORD": "StrongPassword123!"
        }
      }
    }
  }
}

三、调试与验证

1. 使用MCP Inspector

# 安装调试工具
pip install mcp[cli]
# 启动调试界面
mcp dev operatemysql.py
# 浏览器访问
http://localhost:6274

2. 自然语言测试

# 在Cursor中输入
"查询订单表中2024年4月的总销售额"

预期输出:

SELECT SUM(amount) FROM orders WHERE order_date BETWEEN '2024-04-01' AND '2024-04-30';

四、安全加固建议

  1. 网络隔离
    • 限制MySQL仅监听localhostbind-address=127.0.0.1
    • 配置Windows防火墙规则(端口3306仅允许本地访问)
  2. 权限最小化
    -- 仅授予特定表权限
    GRANT SELECT ON your_database.orders TO 'mcp_user'@'localhost';
    
  3. SSL加密
    # MySQL配置文件(my.ini)
    [mysqld]
    ssl-ca=C:\ssl\ca.pem
    ssl-cert=C:\ssl\server-cert.pem
    ssl-key=C:\ssl\server-key.pem
    
  4. 日志监控
    # 查看MCP服务日志
    tail -f C:\ProgramData\mysql-mcp-server\logs\mcp.log
    

五、常见问题解决

现象 原因 解决方案
连接超时 MySQL未启动/防火墙阻断 1. 检查MySQL服务状态2. 关闭Windows Defender临时测试
权限不足 用户权限未配置 使用SHOW GRANTS FOR 'mcp_user'@'localhost';检查权限并补充
中文乱码 字符集不匹配 在MySQL中执行ALTER DATABASE your_database CHARACTER SET utf8mb4;
多线程性能下降 连接池配置不合理 .env中添加MYSQL_POOL_SIZE=5(默认10)

通过以上步骤,您可在Windows系统上实现MCP Server与MySQL的深度集成。建议优先使用STDIO模式进行开发调试,生产环境可切换至SSE模式提升稳定性。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐