MCP MySQL 服务器
一个支持DDL操作、权限控制和操作日志的MCP MySQL服务器。
版本历史
v3.0.0 (最新版本)
- ✅ 只读模式:新增
READONLY环境变量 - 启用后只允许执行 SELECT 和 SHOW 命令 - ✅ 工具前缀支持:新增
TOOL_PREFIX环境变量,用于工具名称隔离和配置分离 - ✅ 项目品牌:新增
PROJECT_NAME环境变量,用于自定义工具描述 - ✅ 多实例支持:完整支持运行多个 MySQL 服务器实例,配置相互隔离
- ✅ 默认日志路径:将默认日志目录从
./logs改为./.setting
v2.0.1
- ✅ DDL SQL 日志记录:新增专门的 DDL SQL 操作日志记录到
ddl.sql文件 - ✅ 新工具:新增
get_ddl_sql_logs工具用于查询 DDL 操作历史
v2.0.0
- ✅ 初始版本,支持 DDL 操作
- ✅ 权限控制系统
- ✅ 操作日志记录
- ✅ 连接池管理
功能特性
- ✅ 支持SQL查询执行(DDL和DML)
- ✅ 数据库信息获取
- ✅ 操作日志记录
- ✅ 连接池管理
- ✅ 自动重连机制
- ✅ 健康检查
- ✅ 错误处理和恢复
安装
全局安装(推荐)
npm install -g @liangshanli/mcp-server-mysql
本地安装
npm install @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 READONLY=false
export ALLOW_DDL=true
export ALLOW_DROP=false
export ALLOW_DELETE=false
快速开始
1. 安装包
npm install -g @liangshanli/mcp-server-mysql
2. 配置环境变量
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=root
export MYSQL_PASSWORD=your_password
export MYSQL_DATABASE=your_database
export READONLY=false
export ALLOW_DDL=false
export ALLOW_DROP=false
export ALLOW_DELETE=false
3. 运行服务器
mcp-server-mysql
编辑器集成
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",
"READONLY": "false",
"ALLOW_DDL": "false",
"ALLOW_DROP": "false",
"ALLOW_DELETE": "false"
}
}
}
}
多实例配置
{
"mcpServers": {
"mysql-prod": {
"command": "npx",
"args": ["@liangshanli/mcp-server-mysql"],
"env": {
"MYSQL_HOST": "prod.example.com",
"MYSQL_PORT": "3306",
"MYSQL_USER": "prod_user",
"MYSQL_PASSWORD": "prod_password",
"MYSQL_DATABASE": "prod_db",
"READONLY": "true",
"TOOL_PREFIX": "prod",
"PROJECT_NAME": "生产环境"
}
},
"mysql-test": {
"command": "npx",
"args": ["@liangshanli/mcp-server-mysql"],
"env": {
"MYSQL_HOST": "test.example.com",
"MYSQL_PORT": "3306",
"MYSQL_USER": "test_user",
"MYSQL_PASSWORD": "test_password",
"MYSQL_DATABASE": "test_db",
"TOOL_PREFIX": "test",
"PROJECT_NAME": "测试环境"
}
}
}
}
VS Code 配置 - .vscode/mcp.json 格式
1. 安装 VS Code 的 MCP 扩展
2. 创建 .vscode/mcp.json 文件:
单实例配置
{
"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"
}
}
}
}
多实例配置
{
"servers": {
"mysql-prod": {
"command": "npx",
"args": ["@liangshanli/mcp-server-mysql"],
"env": {
"MYSQL_HOST": "prod.example.com",
"MYSQL_PORT": "3306",
"MYSQL_USER": "prod_user",
"MYSQL_PASSWORD": "prod_password",
"MYSQL_DATABASE": "prod_db",
"READONLY": "true",
"TOOL_PREFIX": "prod",
"PROJECT_NAME": "生产环境"
}
},
"mysql-test": {
"command": "npx",
"args": ["@liangshanli/mcp-server-mysql"],
"env": {
"MYSQL_HOST": "test.example.com",
"MYSQL_PORT": "3306",
"MYSQL_USER": "test_user",
"MYSQL_PASSWORD": "test_password",
"MYSQL_DATABASE": "test_db",
"TOOL_PREFIX": "test",
"PROJECT_NAME": "测试环境"
}
}
}
}
环境变量
| 变量名 | 默认值 | 说明 |
|---|---|---|
| MYSQL_HOST | localhost | MySQL主机地址 |
| MYSQL_PORT | 3306 | MySQL端口 |
| MYSQL_USER | root | MySQL用户名 |
| MYSQL_PASSWORD | MySQL密码 | |
| MYSQL_DATABASE | 数据库名 | |
| READONLY | false | 如果设置为'true',只允许执行SELECT和SHOW命令 |
| ALLOW_DDL | false | 是否允许DDL操作 |
| ALLOW_DROP | false | 是否允许DROP操作 |
| ALLOW_DELETE | false | 是否允许DELETE操作 |
| TOOL_PREFIX | 可选工具前缀,用于工具名称和配置隔离 | |
| PROJECT_NAME | 可选项目品牌名称 |
可用工具
- sql_query - 执行SQL查询
- get_database_info - 获取数据库信息
- get_operation_logs - 获取操作日志
- get_ddl_sql_logs - 获取 DDL SQL 操作日志
- check_permissions - 检查数据库权限
连接池特性
- 自动创建:在
notifications/initialized时自动创建连接池 - 健康检查:每5分钟检查连接池状态
- 自动重连:连接池失效时自动重新创建
- 连接复用:使用连接池提高性能
- 优雅关闭:服务器关闭时正确释放连接
错误处理
- 单个请求错误不会影响整个服务器
- 连接池错误会自动恢复
- 进程异常会自动重启(托管模式)
🔗 相关工具
- MCP Git 服务器 - Git push 操作管理
- MCP Browser 服务器 - 无头浏览器文档抓取
- MCP Redis 服务器 - Redis 数据操作和键管理
- MCP MSSQL Server 服务器 - SQL Server 数据库操作、DDL 支持
- MCP 项目标准管理服务器 - 项目标准管理
- MCP Gitee Pull Request 服务器 - Gitee Pull Request 创建和自动化工作流
许可证
MIT