引言

在现代化的软件开发流程中,数据库结构管理一直是一个关键挑战。开发团队需要在多个环境间同步数据库变更,运维团队需要追踪每一次结构修改,而合规要求则需要对所有数据库操作进行审计。为了解决这些痛点,我们很高兴地宣布 MCP MySQL Server v2.0.1 的发布,这个版本带来了革命性的 DDL 日志记录功能。

核心功能:智能 DDL 日志记录

什么是 DDL 日志记录?

DDL(Data Definition Language)日志记录是 v2.0.1 版本的核心新功能。它能够自动捕获所有成功的数据库结构变更操作,并将它们记录到一个专门的 SQL 文件中。这个功能不仅解决了数据库变更追踪的问题,更为团队协作和运维管理带来了全新的体验。

主要特性

🎯 仅记录成功操作

  • 只有成功执行的 DDL 操作才会被记录到日志文件中
  • 失败的 SQL 语句不会污染可执行文件,确保日志的纯净性
  • 内存中仍保留完整的操作记录,便于调试和问题排查

⏰ 精确时间戳

  • 每个 DDL 操作都包含精确到秒的时间戳注释
  • 格式:# 2025-09-08 15:24:36
  • 便于追踪变更历史和进行时间线分析

🔧 自动格式化

  • SQL 语句自动添加分号结尾
  • 多行 SQL 语句保持完整格式
  • 确保生成的日志文件可以直接执行

实际应用场景

数据库同步与部署

在微服务架构中,不同的服务可能需要访问相同的数据结构。通过 DDL 日志记录,开发团队可以轻松地将数据库结构变更从开发环境同步到测试、预发布和生产环境。生成的 ddl.sql 文件可以直接在目标环境中执行,确保所有环境的数据结构保持一致。

团队协作与代码审查

传统的数据库变更往往通过口头沟通或文档记录,容易出现遗漏和误解。现在,开发团队可以通过 DDL 日志文件清晰地了解每一次结构变更,将数据库变更与应用程序代码变更一起进行审查,提高协作效率。

合规与审计

对于需要满足合规要求的企业,DDL 日志记录提供了完整的数据库变更审计跟踪。每一次结构修改都有精确的时间戳记录,满足监管机构对数据库变更跟踪的要求。

技术实现亮点

新增工具支持

v2.0.1 版本新增了 get_ddl_sql_logs 工具,允许用户通过 MCP 协议查询 DDL 操作历史。这个工具支持分页查询,可以灵活地获取不同时间段的操作记录。

环境变量配置

通过 MCP_DDL_LOG_FILE 环境变量,用户可以自定义 DDL 日志文件的名称和位置,满足不同项目的需求。

向后兼容

新功能完全向后兼容,现有的 MCP MySQL Server 用户可以无缝升级到 v2.0.1 版本,无需修改任何配置。

使用示例

生成的 DDL 日志文件格式清晰易读:

# 2025-09-08 15:24:36
CREATE TABLE test_v201_users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
# 2025-09-08 15:24:40
ALTER TABLE test_v201_users ADD COLUMN phone VARCHAR(20);
# 2025-09-08 15:24:44
CREATE INDEX idx_username_v201 ON test_v201_users(username);

快速安装与使用

安装方式

全局安装(推荐)

npm install -g @liangshanli/mcp-server-mysql

使用 npx 运行(无需安装)

npx @liangshanli/mcp-server-mysql

从源码安装

git clone https://github.com/liliangshan/mcp-server-mysql.git
cd mcp-server-mysql
npm install

环境配置

设置必要的环境变量:

export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=root
export MYSQL_PASSWORD=your_password
export MYSQL_DATABASE=your_database
export ALLOW_DDL=true
export ALLOW_DROP=false
export ALLOW_DELETE=false
export MCP_LOG_DIR=./logs
export MCP_LOG_FILE=mcp-mysql.log
export MCP_DDL_LOG_FILE=ddl.sql

IDE 集成配置

Cursor 编辑器配置

在项目根目录创建 .cursor/mcp.json 文件:

{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["@liangshanli/mcp-server-mysql"],
      "env": {
        "MYSQL_HOST": "your_host",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "your_user",
        "MYSQL_PASSWORD": "your_password",
        "MYSQL_DATABASE": "your_database",
        "ALLOW_DDL": "true",
        "ALLOW_DROP": "false",
        "ALLOW_DELETE": "false",
        "MCP_LOG_DIR": "./logs",
        "MCP_LOG_FILE": "mcp-mysql.log",
        "MCP_DDL_LOG_FILE": "ddl.sql"
      }
    }
  }
}

VS Code 配置

  1. 安装 VS Code 的 MCP 扩展
  2. 创建 .vscode/settings.json 文件:
{
  "mcp.servers": {
    "mysql": {
      "command": "npx",
      "args": ["@liangshanli/mcp-server-mysql"],
      "env": {
        "MYSQL_HOST": "your_host",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "your_user",
        "MYSQL_PASSWORD": "your_password",
        "MYSQL_DATABASE": "your_database",
        "ALLOW_DDL": "true",
        "ALLOW_DROP": "false",
        "ALLOW_DELETE": "false",
        "MCP_LOG_DIR": "./logs",
        "MCP_LOG_FILE": "mcp-mysql.log",
        "MCP_DDL_LOG_FILE": "ddl.sql"
      }
    }
  }
}

权限控制策略

安全模式(推荐用于生产环境)

export ALLOW_DDL=false
export ALLOW_DROP=false
export ALLOW_DELETE=false

开发模式

export ALLOW_DDL=true
export ALLOW_DROP=false
export ALLOW_DELETE=false

完整权限模式(谨慎使用)

export ALLOW_DDL=true
export ALLOW_DROP=true
export ALLOW_DELETE=true

总结

MCP MySQL Server v2.0.1 的 DDL 日志记录功能为数据库管理带来了全新的解决方案。它不仅解决了数据库变更追踪的痛点,更为团队协作、环境同步和合规审计提供了强有力的支持。这个功能将帮助开发团队更高效地管理数据库结构,提升整体开发运维效率。

通过简单的安装配置,您就可以在 Cursor、VS Code 等主流 IDE 中直接使用这个强大的数据库管理工具。立即升级到 v2.0.1 版本,体验智能 DDL 日志记录带来的便利!


MCP MySQL Server 是一个开源的 MCP 协议 MySQL 服务器,支持 DDL 操作、权限控制和操作日志记录。了解更多信息,请访问 GitHub 仓库

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐