liyq0307/MySQLMCP
If you are the rightful owner of MySQLMCP and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
This is a high-performance, enterprise-grade MySQL database operation server designed for the Model Context Protocol (MCP).
MySQL MCP 服务器 - TypeScript 版本
这是一个为模型上下文协议(Model Context Protocol, MCP)设计的高性能、企业级MySQL数据库操作服务器。基于FastMCP v2.0+框架构建,提供29个专业数据库工具,集成了三级智能缓存、双层性能监控、增强的连接池管理、RBAC权限控制和全面的安全保护机制。
🎯 核心亮点:
- 29个专业工具: 涵盖核心数据操作、架构管理、高性能批量操作、备份导出、系统监控和维护等全场景
- 企业级安全: 20+种SQL注入检测模式,多层安全验证、智能威胁分析和RBAC权限控制
- 智能性能: 三级LRU缓存系统(O(1)复杂度)、双层指标收集、自动内存压力感知优化
- 高级可靠性: 指数退避重试策略、智能错误分类、上下文恢复建议和优雅降级
- 完整数据生态: 全量/增量/大文件备份、多格式(Excel/CSV/JSON/SQL)导入导出、智能进度跟踪
- 零配置: 环境变量驱动配置,支持不同环境的一键部署和动态配置更新
服务器通过环境变量进行配置。您可以选择以下方式之一:
- 使用 .env 文件(推荐):
- 将
.env.example复制为.env - 根据您的环境自定义
.env中的值 - 服务器启动时会自动加载这些值
- 将
- 直接设置环境变量:
- 在运行服务器之前在 shell 中导出变量
- 在进程管理器或容器配置中设置变量
🚀 核心特性
⚡ 高性能架构
- FastMCP 框架: 采用现代化的 FastMCP 构建,提供卓越的性能和可靠性。
- 智能缓存系统: 多级 LRU 缓存,支持 TTL(生存时间)和访问统计。
- 表结构缓存 (
schemaCache) - 表存在性检查缓存 (
tableExistsCache) - 索引信息缓存 (
indexCache)
- 表结构缓存 (
- 增强型连接池: 基于
mysql2/promise,使用ConnectionPool类,支持预创建连接、健康检查、自动重连和智能资源管理。 - 异步处理: 所有数据库操作均为异步,充分利用 Node.js 事件循环,实现高并发处理。
🧠 高级功能
- 增强重试机制: SmartRetryStrategy实现指数退避算法,智能错误分类,上下文感知的自动重试策略,最大重试次数可配置。
- 自适应速率限制: 基于令牌桶算法的动态频控,支持系统负载感知和自动压力释放机制,包含详细的限流统计和预防措施。
- 查询验证与安全: 多层查询验证,包括参数化查询强制、威胁模式检测、可配置安全级别(STRICT/MODERATE/BASIC),支持实时威胁检测。
- 智能缓存系统: 三级LRU缓存架构,支持O(1)复杂度、TTL管理、内存压力自适应和自动失效机制,包含缓存预热和智能清理。
- 实时性能监控: EnhancedMetrics系统提供双层指标收集、时间序列分析、趋势检测和实时性能报告,支持慢查询检测和性能回归分析。
- 内存优化管理: 高级内存泄漏检测(线性回归算法)、自动垃圾回收、压力感知缓存调整和智能资源优化,支持内存压力分级和自动优化。
- 智能错误分类: 自动错误分类引擎,提供修复建议、预防措施和上下文恢复策略,支持多种数据库错误类型的智能诊断。
- 任务队列系统: 支持优先级调度、并发控制、任务取消和详细进度跟踪,包含队列状态监控和智能重试机制。
- MySQL复制监控: 主从复制状态检测、延迟分析、错误诊断和配置验证,支持复制延迟趋势分析和自动告警。
- 全面安全审计: 20+种SQL注入检测模式、用户权限审计、数据保护评估和合规性检查,支持SOX/GDPR/PCI-DSS合规性验证。
- 备份恢复优化: 全量/增量/大文件备份策略、智能压缩、备份验证和错误恢复机制,支持备份进度跟踪和恢复点验证。
- MySQL索引管理: 完整的索引生命周期管理,支持创建、删除、分析和优化多种索引类型(普通/唯一/主键/全文/空间索引)。
- 用户权限管理: 企业级用户管理解决方案,支持用户创建、删除、权限授予和撤销,包含安全密码验证和审计追踪。
- 数据报表生成: 智能数据报表生成,支持多查询整合、多格式输出(Excel/CSV/JSON)和自定义报表模板。
- 优雅降级机制: 多层降级策略,确保核心功能与辅助功能的隔离运行,支持临时功能禁用和自动恢复。
🛡️ 企业级安全
- 多层防护体系: 包括SecurityValidator类进行输入验证、20+SQL注入模式检测、危险语句扫描和实时威胁分析。
- 安全的参数化查询: 所有数据修改操作默认使用预处理语句,从根本上杜绝SQL注入。
- 敏感信息保护: 诊断信息中自动屏蔽数据库密码。
- 高级SQL注入检测: 实现20多种SQL注入模式的全面保护。
🔧 零配置与易用性
- 常量化设计: 所有配置项和固定字符串在
constants.ts中统一定义,提高代码可读性和可维护性。 - 配置分离: 数据库、安全和缓存配置在
config.ts中集中管理。 - 环境变量驱动: 完全支持通过环境变量进行配置,轻松实现开发、测试和生产环境的切换。
目录
快速开始
1. 环境要求
- Node.js v20.0.0 或更高版本
- npm v10.0.0 或更高版本
- MySQL 5.7 或更高版本 (推荐 MySQL 8.0+)
2. 克隆项目
git clone https://github.com/liyq0307/MySQLMCP.git
cd MySQLMCP
3. 安装依赖
npm install
4. 配置环境变量
复制 .env.example 文件并创建 .env 文件:
cp .env.example .env
然后编辑 .env 文件,填入您的数据库凭据。
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=your_username
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=your_database
5. 编译并运行服务器
# 编译 TypeScript 代码
npm run build
# 启动服务器
npm start
或者用于开发:
# 使用 ts-node 直接运行进行开发
npm run dev
6. 验证安装
服务器运行后,您可以使用系统状态工具验证其是否正常工作:
{
"scope": "full",
"includeDetails": true
}
安装说明
系统要求
- Node.js v20.0.0 或更高版本
- npm v10.0.0 或更高版本
- MySQL 5.7 或更高版本 (推荐 MySQL 8.0+)
- 最低 2GB 内存 (生产环境推荐 4GB+)
- 最少 500MB 可用磁盘空间
核心依赖
fastmcp: 核心的 MCP 框架 (v2.0+)。高性能模型上下文协议服务器实现。mysql2: 高性能 MySQL 驱动,支持连接池和 Promise API,支持预处理语句。zod: 用于工具参数的类型声明和验证,支持运行时类型安全。dotenv: 用于从.env文件加载环境变量,支持安全配置管理。
开发依赖
typescript: TypeScript 语言编译器,支持严格类型检查。ts-node: 直接运行 TypeScript 代码的工具,无需编译。eslint: 用于代码规范和质量检查,支持自定义规则。jest: 用于单元测试和集成测试的框架,支持代码覆盖率分析。@types/node: Node.js API 的 TypeScript 定义。@types/jest: Jest 测试框架的 TypeScript 定义。
可选性能依赖
为了增强性能监控和系统分析:
- 带
--expose-gc标志的 Node.js,用于垃圾回收监控 - 用于 CPU 和内存分析的系统监控工具
- 用于安全连接的 SSL/TLS 证书
环境变量配置
🔗 数据库连接配置
| 环境变量 | 描述 | 默认值 |
|---|---|---|
MYSQL_HOST | 数据库主机地址 | localhost |
MYSQL_PORT | 数据库端口 | 3306 |
MYSQL_USER | 数据库用户名 | root |
MYSQL_PASSWORD | 数据库密码 | "" |
MYSQL_DATABASE | 数据库名称 | test |
MYSQL_CONNECTION_LIMIT | 连接池最大连接数 | 20 |
MYSQL_CONNECT_TIMEOUT | 连接超时时间(毫秒) | 60000 |
MYSQL_IDLE_TIMEOUT | 空闲连接超时时间(毫秒) | 300000 |
MYSQL_SSL | 是否启用SSL连接 | false |
MYSQL_CHARSET | 数据库字符集 | utf8mb4 |
MYSQL_TIMEZONE | 数据库时区 | +00:00 |
QUERY_TIMEOUT | 查询执行超时时间(毫秒) | 30000 |
🛡️ 安全配置
| 环境变量 | 描述 | 默认值 |
|---|---|---|
SECURITY_MAX_QUERY_LENGTH | 最大查询长度(字符数) | 10000 |
SECURITY_MAX_INPUT_LENGTH | 最大输入长度(字符数) | 1000 |
SECURITY_MAX_TABLE_NAME_LENGTH | 最大表名长度(字符数) | 64 |
SECURITY_ALLOWED_QUERY_TYPES | 允许的查询类型(逗号分隔) | SELECT,INSERT,UPDATE,DELETE,SHOW,DESCRIBE,EXPLAIN,CREATE,DROP,ALTER |
SECURITY_ENABLE_QUERY_TYPE_RESTRICTIONS | 启用查询类型限制 | true |
SECURITY_MAX_RESULT_ROWS | 每次查询最大返回行数 | 1000 |
SECURITY_QUERY_TIMEOUT | 查询执行超时时间(毫秒) | 30000 |
RATE_LIMIT_MAX | 时间窗口内最大请求数 | 100 |
RATE_LIMIT_WINDOW | 频率限制时间窗口(毫秒) | 60000 |
RATE_LIMIT_ENABLED | 启用频率限制 | true |
⚡ 性能配置
| 环境变量 | 描述 | 默认值 |
|---|---|---|
SCHEMA_CACHE_SIZE | 表结构缓存大小 | 128 |
TABLE_EXISTS_CACHE_SIZE | 表存在性缓存大小 | 64 |
INDEX_CACHE_SIZE | 索引信息缓存大小 | 64 |
CACHE_TTL | 缓存过期时间(秒) | 300 |
BATCH_SIZE | 批量操作大小 | 1000 |
MONITORING_ENABLED | 启用性能监控 | true |
MONITORING_SNAPSHOT_INTERVAL | 性能快照间隔(毫秒) | 30000 |
MONITORING_HISTORY_SIZE | 指标历史记录大小 | 1000 |
MONITORING_SLOW_QUERY_THRESHOLD | 慢查询阈值(毫秒) | 1000 |
MEMORY_MONITORING_ENABLED | 启用内存监控 | true |
MEMORY_MONITORING_INTERVAL | 内存监控间隔(毫秒) | 30000 |
MEMORY_HISTORY_SIZE | 内存历史记录大小 | 100 |
MEMORY_PRESSURE_THRESHOLD | 内存压力阈值(0-1) | 0.8 |
MEMORY_CACHE_CLEAR_THRESHOLD | 内存缓存清除阈值(0-1) | 0.85 |
MEMORY_AUTO_GC | 启用自动垃圾回收 | true |
SYSTEM_MONITORING_INTERVAL | 系统监控间隔(毫秒) | 30000 |
🖥️ 服务器配置
| 环境变量 | 描述 | 默认值 |
|---|---|---|
SERVER_NAME | 服务器名称 | MySQL-MCP-Server |
SERVER_VERSION | 服务器版本 | 1.0.0 |
NODE_ENV | Node环境 (development, production, test) | development |
LOG_LEVEL | 日志级别 (debug, info, warn, error) | info |
DEBUG | 启用调试模式 | false |
MCP_TRANSPORT | MCP传输协议 | stdio |
Claude Desktop集成
要将此服务器添加到您的Claude Desktop配置中,请编辑您的 claude_desktop_config.json 文件。
基础配置示例
{
"mcpServers": {
"mysql-mcp-ts": {
"command": "node",
"args": ["/path/to/your/MySQLMCP_TS/dist/index.js"], // 编译后的JS文件绝对路径
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_USER": "your_username",
"MYSQL_PASSWORD": "your_password",
"MYSQL_DATABASE": "your_database"
}
}
}
}
高性能生产环境配置
{
"mcpServers": {
"mysql-prod": {
"command": "node",
"args": ["/path/to/your/MySQLMCP_TS/dist/index.js"],
"env": {
"NODE_ENV": "production",
"MYSQL_HOST": "prod-db-host",
"MYSQL_USER": "app_user",
"MYSQL_PASSWORD": "secure_password",
"MYSQL_DATABASE": "production_db",
"MYSQL_CONNECTION_LIMIT": "50",
"RATE_LIMIT_MAX": "1000",
"SCHEMA_CACHE_SIZE": "256",
"CACHE_TTL": "600",
"MYSQL_SSL": "true"
}
}
}
}
🔧 完整工具生态 (29个专业工具)
本系统提供29个专业级数据库工具,覆盖企业应用的全部需求:
📊 核心数据库操作 (7个工具)
mysql_query
执行原始SQL查询,具有全面的验证和安全检查。支持参数化查询以确保安全。
支持 SELECT、SHOW、DESCRIBE、INSERT、UPDATE、DELETE、CREATE、DROP 和 ALTER 操作。
示例:
简单的 SELECT 查询
{
"query": "SELECT * FROM users LIMIT 10",
}
安全的参数化查询
{
"query": "SELECT * FROM users WHERE id = ? AND status = ?",
"params": [123, "active"]
}
mysql_show_tables
列出当前数据库中的所有表,支持智能缓存。
结果会被缓存以优化性能,提高频繁查询的响应速度。
提供数据库架构的快速概览,支持开发和运维场景。
示例:
{}
mysql_describe_table
获取指定表的完整结构,包括列定义、数据类型、约束、索引信息和其他元数据。
支持 DESCRIBE 和 INFORMATION_SCHEMA 查询。
示例:
{
"table_name": "users"
}
mysql_select_data
从表中查询数据,支持可选的过滤、列选择和行数限制。
提供灵活的查询构建,具有完整的SQL注入防护和性能优化。
支持条件查询、分页查询和结果缓存等高级功能。
示例:
查询表中的所有数据
{
"table_name": "products",
}
查询特定列并进行过滤和限制
{
"table_name": "users",
"columns": ["id", "name", "email"],
"where_clause": "status = 'active'",
"limit": 50,
"order_by": "price DESC"
}
复杂条件查询
{
"table_name": "orders",
"columns": ["order_id", "customer_id", "total_amount"],
"where_clause": "created_at >= '2024-01-01' AND status IN ('pending', 'processing')",
"limit": 100
}
mysql_insert_data
使用参数化查询安全地向表中插入新数据,确保数据完整性和安全性。
自动验证所有输入数据,使用预处理语句防止SQL注入攻击。
支持单行插入和批量数据插入,包含事务安全保障。
示例:
{
"table_name": "users",
"data": {
"name": "John Doe",
"email": "john@example.com",
"status": "active"
}
}
mysql_update_data
根据指定条件更新表中的现有数据,确保数据修改的安全性和一致性。
提供完整的输入验证,具有WHERE子句验证、预处理语句和事务安全保障。
支持条件更新和批量字段修改,包含详细的操作审计信息。
示例:
{
"table_name": "users",
"data": { "status": "inactive", "updated_at": "2024-01-01" },
"where_clause": "id = ?",
"params": [123]
}
mysql_delete_data
根据指定条件从表中安全删除数据,确保删除操作的准确性和安全性。
使用参数化查询和WHERE子句验证,防止误删除和SQL注入攻击。
支持条件删除操作,包含删除确认和事务安全保障。
示例:
{
"table_name": "users",
"where_clause": "id = ?",
"params": [123]
}
⚡ 高性能批量操作 (2个工具)
mysql_batch_execute
在单个事务中执行多个SQL操作,确保原子性和数据一致性。所有查询要么全部成功执行,要么全部回滚,
特别适用于需要多步骤操作的复杂业务场景,如订单处理、库存管理等。提供完整的参数验证、
性能监控和错误处理机制,确保批量操作的安全性和可靠性。
示例:
{
"queries": [
{"sql": "INSERT INTO users (name, email) VALUES (?, ?)", "params": ["John", "john@example.com"]},
{"sql": "UPDATE profiles SET user_id = ? WHERE email = ?", "params": [1, "john@example.com"]},
{"sql": "INSERT INTO user_logs (user_id, action) VALUES (LAST_INSERT_ID(), ?)", "params": ["user_created"]}
]
}
{
"queries": [
{ "sql": "INSERT INTO new_users SELECT * FROM temp_users WHERE processed = 0" },
{ "sql": "UPDATE temp_users SET processed = 1 WHERE processed = 0" },
{ "sql": "DELETE FROM temp_users WHERE created_at < DATE_SUB(NOW(), INTERVAL 7 DAY)" }
]
}
mysql_batch_insert
高效地向表中批量插入多行数据,支持事务安全保障和性能优化。
使用优化的批量插入算法,减少数据库往返次数,提高插入性能。
动验证所有数据,确保数据完整性和安全性,支持大数据量插入。
提供详细的性能指标和插入统计信息,适用于数据导入和批量数据处理场景。
示例:
{
"table_name": "products",
"data": [
{"name": "Product A", "price": 29.99, "category": "Electronics"},
{"name": "Product B", "price": 49.99, "category": "Books"},
{"name": "Product C", "price": 19.99, "category": "Home"}
]
}
🏗️ 数据库架构管理 (6个工具)
mysql_create_table
使用指定的列定义和约束创建新的数据库表,支持完整的表结构定义。
提供全面的安全验证,包括表名验证、列定义验证,确保数据库操作的安全性。
支持主键、自增列、默认值等高级约束,支持批量列定义和事务安全保障。
创建成功后自动使相关缓存失效,确保数据一致性。
示例:
创建简单的用户表
{
"table_name": "users",
"columns": [
{ "name": "id", "type": "INT", "primary_key": true, "auto_increment": true },
{ "name": "username", "type": "VARCHAR(50)", "nullable": false },
{ "name": "email", "type": "VARCHAR(100)", "nullable": false },
{ "name": "created_at", "type": "TIMESTAMP", "default": "CURRENT_TIMESTAMP" }
]
}
指定索引创建
{
"table_name": "users",
"columns": [
{"name": "id", "type": "INT", "primary_key": true, "auto_increment": true},
{"name": "name", "type": "VARCHAR(255)", "nullable": false},
{"name": "email", "type": "VARCHAR(255)", "nullable": false, "unique": true},
{"name": "created_at", "type": "TIMESTAMP", "default": "CURRENT_TIMESTAMP"}
],
"indexes": [
{"name": "idx_email", "columns": ["email"], "type": "UNIQUE"},
{"name": "idx_created_at", "columns": ["created_at"], "type": "INDEX"}
]
}
mysql_drop_table
从数据库中安全删除(丢弃)指定的表,支持条件删除选项和完整的安全验证。
提供 IF EXISTS 选项避免表不存在时的错误,支持事务安全保障和缓存自动失效。
删除操作前会进行严格的安全验证,确保不会误删重要数据。
特别适用于开发环境中的表清理和生产环境的表维护操作。
示例:
删除表
{
"table_name": "temp_table",
}
安全删除表
{
"table_name": "temp_table",
"if_exists": true
}
mysql_get_schema
检索数据库架构信息,包括表、列、约束、索引和关系映射。
提供完整的数据库结构信息用于分析、管理和文档生成,支持特定表查询。
利用 INFORMATION_SCHEMA 进行高效查询,支持缓存优化和性能监控。
示例:
获取整个数据库的架构信息
{}
获取特定表的架构信息
{
"table_name": "users"
}
mysql_get_foreign_keys
检索特定表或数据库中所有表的外键约束信息,提供表间关系映射和引用完整性约束的详细信息。
利用 INFORMATION_SCHEMA.KEY_COLUMN_USAGE 进行高效查询,支持特定表查询和全局关系分析。
帮助理解数据库架构中的表间依赖关系,支持数据库设计优化和数据完整性维护。
提供外键约束的详细信息,包括本地列、引用表、引用列和约束名称。
示例:
{
"table_name": "orders"
}
mysql_alter_table
修改现有表的结构,支持添加、修改、删除列、索引和约束等高级操作。
提供全面的安全验证、事务安全保障和智能错误处理机制。
支持批处理多个修改操作,提高数据库架构管理的效率和安全性。
包含性能监控和缓存自动失效,确保修改后的数据一致性。
示例:
{
"table_name": "users",
"alterations": [
{ "type": "ADD_COLUMN", "column": { "name": "age", "type": "INT", "nullable": true } }
]
}
mysql_performance_optimize
性能优化工具,提供企业级MySQL性能优化解决方案,提供全方位数据库性能诊断和优化功能。 集成了慢查询分析、索引优化建议、性能报告生成等高级性能优化能力。 支持智能分析查询模式、识别性能瓶颈、生成优化建议和详细性能报告。 适用于数据库管理员进行性能调优、查询优化、系统监控等场景。 操作类型:
- analyze_slow_queries: 分析慢查询日志
- suggest_indexes: 生成索引优化建议
- performance_report: 生成性能综合报告
- query_profiling: 对特定查询进行性能剖析
示例:
// 启用慢查询日志
{
"action": "enable_slow_query_log",
"longQueryTime": 2,
"logQueriesNotUsingIndexes": true
}
// 分析慢查询
{
"action": "analyze_slow_queries",
"limit": 10,
"include_details": true
}
// 生成综合性能报告
{
"action": "suggest_indexes",
"time_range": "1 week"
}
// 对特定查询进行性能剖析
{
"action": "query_profiling",
"query": "SELECT * FROM users WHERE email = ? AND status = ?",
"params": ["user@example.com", "active"],
"include_details": true
}
💾 数据备份与导出 (5个工具)
mysql_backup
数据库备份,支持多种备份策略和高级功能。
提供全量备份、增量备份、大文件备份等多种备份类型,满足不同场景的需求。
集成了进度跟踪、错误恢复、队列管理等高级功能,确保备份过程的可靠性和可观测性。
支持智能压缩、数据验证、备份恢复等多种企业级特性。
示例:
全量备份所有表
{
"outputDir": "/backup",
"compress": true,
"includeData": true,
"includeStructure": true,
"filePrefix": "daily_backup"
}
仅备份表结构
{
"includeData": false,
"includeStructure": true,
"tables": ["users", "products", "orders"],
"filePrefix": "schema_only"
}
增量备份(基于时间戳)
{
"backupType": "incremental",
"incrementalMode": "timestamp",
"lastBackupTime": "2024-01-15T00:00:00Z",
"trackingTable": "backup_history",
"filePrefix": "incremental_backup"
}
大文件备份(适用于超大数据集)
{
"backupType": "large-file",
"chunkSize": 128,
"maxMemoryUsage": 1024,
"compressionLevel": 9,
"diskThreshold": 500,
"filePrefix": "large_dataset_backup"
}
带进度跟踪的备份
{
"withProgress": true,
"priority": 5,
"useQueue": true,
"filePrefix": "progress_tracked_backup"
}
高可靠性的备份(带错误恢复)
{
"withRecovery": true,
"retryCount": 3,
"compress": true,
"maxFileSize": 200,
"filePrefix": "reliable_backup"
}
mysql_verify_backup
备份验证,确保备份文件的完整性、有效性和可恢复性。
提供全面的备份验证,包括文件格式检查、数据完整性验证、元数据验证等。
支持多种验证级别和详细的验证报告,帮助确保备份数据的可靠性。
集成了智能验证算法,能够检测数据损坏、格式错误和潜在的恢复问题。
示例:
基础备份验证
{
"backupFilePath": "/backup/mysql_backup_2024.sql"
}
深度验证(全面检查)
{
"backupFilePath": "/backup/mysql_backup_2024.sql",
"deepValidation": true,
"validateStructure": true,
"validateData": true,
"checkCorruption": true,
"maxSampleSize": 5000
}
快速结构验证
{
"backupFilePath": "/backup/schema_only_backup.sql",
"deepValidation": false,
"validateStructure": true,
"validateData": false,
"generateReport": true,
"outputFormat": "text"
}
生产环境验证(平衡速度和准确性)
{
"backupFilePath": "/backup/production_backup.sql",
"deepValidation": true,
"validateStructure": true,
"validateData": true,
"checkCorruption": true,
"maxSampleSize": 10000,
"generateReport": true,
"outputFormat": "json"
}
大文件验证(优化内存使用)
{
"backupFilePath": "/backup/large_backup.sql",
"deepValidation": false,
"validateStructure": true,
"validateData": false,
"checkCorruption": true,
"maxSampleSize": 1000,
"generateReport": false
}
mysql_export_data
数据导出,支持将MySQL查询结果导出为多种格式文件(Excel、CSV、JSON)。
集成了高级错误恢复机制、实时进度跟踪、任务队列管理等企业级特性。
支持大数据量导出、内存优化、多种格式转换和详细的导出统计信息。
特别适用于数据分析、报表生成、数据迁移等场景。
主要特性:
- 多格式支持:Excel(.xlsx)、CSV(.csv)、JSON(.json)
- 高级导出选项:自定义文件名、工作表名、包含表头等
- 错误恢复机制:自动重试、回退策略、详细错误诊断
- 进度跟踪:实时进度更新、取消支持、详细统计信息
- 队列管理:异步执行、优先级调度、并发控制
- 内存优化:流式处理、大文件分块、内存使用监控
- 企业级功能:详细日志、性能指标、操作审计
示例:
基础数据导出(Excel格式)
{
"query": "SELECT id, name, email, created_at FROM users WHERE status = ?",
"params": ["active"]
}
导出为CSV格式(大数据量优化)
{
"query": "SELECT * FROM orders WHERE order_date >= ?",
"params": ["2024-01-01"],
"format": "csv",
"maxRows": 500000,
"fileName": "orders_2024"
}
JSON格式导出(API数据准备)
{
"query": "SELECT product_id, name, price, inventory FROM products",
"format": "json",
"includeHeaders": false,
"outputDir": "/api/data"
}
带进度跟踪的导出
{
"query": "SELECT * FROM large_dataset",
"withProgress": true,
"enableCancellation": true,
"maxRows": 1000000
}
异步队列导出(高并发场景)
{
"query": "SELECT * FROM analytics_data",
"useQueue": true,
"priority": 5,
"immediateReturn": true,
"fileName": "analytics_report"
}
高可靠性导出(带错误恢复)
{
"query": "SELECT * FROM critical_data",
"withRecovery": true,
"retryCount": 3,
"exponentialBackoff": true,
"fallbackFormat": "csv",
"reducedBatchSize": 5000
}
自定义Excel导出(多工作表样式)
{
"query": "SELECT customer_id, order_total, order_date FROM customer_orders",
"format": "excel",
"sheetName": "CustomerOrders",
"includeHeaders": true,
"fileName": "customer_analysis_Q1"
}
企业级大数据导出
{
"query": "SELECT * FROM enterprise_logs WHERE timestamp >= ? AND timestamp <= ?",
"params": ["2024-01-01 00:00:00", "2024-01-31 23:59:59"],
"format": "csv",
"maxRows": 5000000,
"withRecovery": true,
"withProgress": true,
"useQueue": true,
"priority": 10,
"fileName": "enterprise_logs_january"
}
mysql_import_data
企业级数据导入解决方案,支持多种数据格式(CSV、JSON、Excel、SQL)的批量导入。 集成了智能数据验证、字段映射、事务管理、错误处理和性能监控等完整导入生态系统。 提供从简单文件到复杂多格式数据导入的全方位支持。
主要特性:
- 多格式支持:CSV(自定义分隔符)、JSON(含嵌套数据)、Excel(多工作表)、SQL脚本
- 智能验证:类型检查、约束验证、重复检测、数据完整性保障
- 字段映射:自动映射和手动配置,支持复杂数据结构转换
- 事务控制:单条和批量事务模式,确保数据一致性和ACID特性
- 错误处理:详细错误诊断、分级错误报告、自动错误恢复
- 批量优化:内存分块处理、大文件分批写入、性能监控
- 重复处理:智能重复检测,支持跳过、更新、错误处理策略
- 进度跟踪:实时导入进度、性能统计、预估完成时间
应用场景:
- 企业数据迁移:大规模数据集迁移,异构系统数据同步
- ETL流程:数据仓库装载,增量/全量数据更新
- 系统集成:第三方系统数据导入,企业应用数据交换
- 业务处理:用户数据导入、产品目录更新、订单批量处理
- 开发环境:测试数据导入,开发环境数据初始化
示例:
单条事务模式 - 完全ACID保证
{
"table_name": "users",
"file_path": "/data/users.csv",
"format": "csv",
"has_headers": true,
"field_mapping": {
"姓名": "name",
"邮箱": "email",
"年龄": "age"
},
"batch_size": 500,
"use_transaction": true,
"validate_data": true,
"skip_duplicates": false,
"conflict_strategy": "error"
}
批量事务模式 - 批次级别原子性
{
"table_name": "products",
"file_path": "/data/products.json",
"format": "json",
"field_mapping": {
"productName": "name",
"productPrice": "price",
"inventory": "stock"
},
"batch_size": 1000,
"use_transaction": false,
"with_progress": true,
"validate_data": true
}
Excel格式智能导入
{
"table_name": "orders",
"file_path": "/data/orders.xlsx",
"format": "excel",
"sheet_name": "Sheet1",
"has_headers": true,
"field_mapping": {
"订单号": "order_id",
"金额": "amount",
"日期": "created_at"
},
"use_transaction": true,
"with_recovery": true,
"validate_data": true
}
导入SQL文件 - 事务安全
{
"table_name": "backup_data",
"file_path": "/data/backup.sql",
"format": "sql",
"use_transaction": true, // SQL语句批量执行在一个事务中
"with_recovery": true
}
mysql_generate_report
数据报表生成,支持执行多个查询并生成综合数据报表。
集成了多工作表Excel文件生成、自定义报表格式、性能指标整合等高级功能。
特别适用于业务分析、市场调研、运营监控、财务报告等场景。
提供完整的报表生命周期管理,从数据查询到格式化输出的一站式服务。
主要特性:
- 多查询整合:支持同时执行多个相关查询,自动整合结果
- 多格式支持:Excel(多工作表)、CSV、JSON等格式*
- 性能监控:内置查询性能统计和优化建议
- 智能布局:自动优化报表结构和数据展示
- 企业级功能:详细日志、错误恢复、操作审计
- 缓存优化:查询结果智能缓存,提高重复报表生成效率
应用场景
- 业务综合报表:销售数据、市场分析、用户行为等
- 财务分析报表:收入支出、成本分析、预算执行等
- 运营监控报表:系统状态、性能指标、错误统计等
- 管理决策报表:KPI指标、趋势分析、预测数据等
示例:
{
"title": "月度销售报表",
"queries": [
{
"name": "销售总览",
"query": "SELECT SUM(amount) FROM sales WHERE month = ?",
"params": ["2023-12"]
}
],
"includeHeaders": true,
"fileName": "monthly_sales_report"
}
🛠️ 系统管理与监控 (8个工具)
mysql_system_status
全面系统诊断,提供全面的MySQL数据库服务器健康状况检查和性能监控。
集成了连接状态诊断、导出操作监控、队列管理状态、系统资源监控等全方位监控能力。
支持分层诊断(全面/连接/导出/队列/内存)和详细诊断信息展示。
提供智能健康评估、性能指标分析、趋势预测和优化建议。
主要特性:
- 分层诊断:支持full(全面)、connection(连接)、export(导出)、queue(队列)、memory(内存)五种检查范围
- 连接监控:数据库连接池状态、连接测试、性能指标、配置信息
- 导出监控:活跃导出任务、队列状态、完成历史、性能统计
- 队列监控:任务队列状态、并发控制、失败任务分析、诊断信息
- 内存监控:系统内存使用、GC状态、内存泄漏检测、压力分析
- 健康评估:整体健康状态评估、问题识别、优化建议生成
诊断范围说明:
- full: 全面诊断所有组件和系统状态
- connection: 重点检查数据库连接和性能指标
- export: 监控导出操作状态和队列情况
- queue: 分析任务队列状态和并发控制
- memory: 评估系统内存使用和GC状态
应用场景:
- 日常运维监控:定期检查系统健康状况
- 故障排查:快速定位系统瓶颈和问题
- 性能调优:分析性能指标,制定优化策略
- 容量规划:监控资源使用趋势,预测容量需求
- 自动化监控:集成到监控系统中,实现自动告警
示例:
全面系统诊断(推荐日常使用)
{
"scope": "full",
"includeDetails": true
}
连接状态检查(数据库连接问题排查)
{
"scope": "connection",
"includeDetails": false
}
导出操作监控(导出任务状态查看)
{
"scope": "export",
"includeDetails": true
}
队列状态分析(任务队列性能调优)
{
"scope": "queue",
"includeDetails": true
}
内存使用评估(内存泄漏检测)
{
"scope": "memory",
"includeDetails": true
}
快速健康检查(运维监控)
{
"scope": "full",
"includeDetails": false
}
详细系统分析(故障排查)
{
"scope": "full",
"includeDetails": true
}
性能监控集成(自动化监控)
{
"scope": "connection",
"includeDetails": true
}
mysql_analyze_error
错误智能诊断,深度分析数据库错误并提供精准的恢复策略。
集成了错误分类、上下文感知、自动诊断、恢复建议生成等全方位错误处理能力。
支持语法错误、连接问题、权限错误、约束冲突等多种错误类型的智能识别和处理。
主要特性:
- 智能错误分类:自动识别错误类型(语法/连接/权限/约束/性能等)
- 上下文感知分析:根据操作上下文提供针对性诊断建议
- 自动诊断引擎:深度分析错误根因,提供多层次诊断信息
- 恢复策略生成:基于错误类型生成具体的修复步骤和预防措施
- 安全增强:错误信息脱敏处理,防止敏感信息泄露
- 学习型系统:持续学习常见错误模式,提高诊断准确性
诊断范围:
- 语法错误:SQL语法错误、关键字拼写错误、语句结构问题
- 连接错误:网络连接、认证失败、连接池问题、超时问题
- 权限错误:访问拒绝、权限不足、用户不存在
- 约束错误:主键冲突、外键约束、唯一性约束、数据类型不匹配
- 性能错误:查询超时、死锁、资源不足
- 其他错误:未知错误类型的一般性处理和建议
应用场景:
- 开发调试:快速定位SQL语法错误和逻辑问题
- 生产运维:快速诊断数据库连接和权限问题
- 数据迁移:识别和解决数据导入导出过程中的错误
- 性能调优:分析查询性能问题和超时错
- 安全审计:检测和分析安全相关的数据库错误
示例:
分析连接访问拒绝错误
{
"error_message": "Access denied for user 'root'@'localhost' (using password: YES)",
"operation": "connection"
}
分析SQL语法错误
{
"error_message": "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELEC * FROM users' at line 1",
"operation": "query"
}
分析外键约束冲突
{
"error_message": "Cannot delete or update a parent row: a foreign key constraint fails (`shop`.`orders`, CONSTRAINT `fk_orders_customer` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`))",
"operation": "dml"
}
分析表不存在错误
{
"error_message": "Table 'database.users' doesn't exist",
"operation": "query"
}
分析重复键错误
{
"error_message": "Duplicate entry 'john@example.com' for key 'email'",
"operation": "dml"
}
分析权限不足错误
{
"error_message": "SELECT command denied to user 'readonly'@'localhost' for table 'sensitive_data'",
"operation": "security"
}
分析查询超时错误
{
"error_message": "Query execution was interrupted, maximum statement execution time exceeded",
"operation": "query"
}
分析死锁错误
{
"error_message": "Lock wait timeout exceeded; try restarting transaction",
"operation": "dml"
}
分析数据类型不匹配错误
{
"error_message": "Incorrect integer value: 'abc' for column 'user_id' at row 1",
"operation": "dml"
}
mysql_security_audit
数据库安全审计,执行全面的安全性评估和合规性检查。
集成了配置安全分析、用户权限审计、数据保护评估、安全威胁检测等全方位安全诊断能力。
支持多种安全标准合规检查,帮助企业识别安全风险并制定安全加固策略。
主要特性:
- 配置安全审计:检查数据库配置的安全性设置和最佳实践。
- 用户权限审计:分析用户角色、权限分配和最小权限原则执行情况
- 数据保护评估:评估敏感数据保护措施和加密机制
- 安全威胁检测:识别潜在的安全漏洞和攻击向量
- 合规性检查:支持SOX、GDPR、PCI-DSS等标准的安全合规评估
- 风险评分系统:提供安全风险量化评分和优先级排序
- 修复建议生成:基于审计结果提供具体的修复步骤和安全加固建议
审计范围:
- 数据库配置安全:连接限制、超时设置、安全协议、日志配置
- 用户账户安全:密码策略、账户锁定、过期策略、权限最小化
- 访问控制安全:角色定义、权限分配、审计日志、访问模式
- 数据保护安全:加密机制、敏感数据识别、数据脱敏、备份安全
- 网络安全:连接安全、防火墙配置、入侵检测
- 合规性评估:行业标准符合性、多框架对比分析
应用场景:
- 安全基线评估:定期进行安全状况评估,建立安全基线
- 合规性审计:满足监管要求,进行合规性检查和报告
- 安全事件响应:安全事件发生后进行全面安全评估
- 第三方审计:为外部审计师提供详细的安全报告
- 安全优化:识别安全薄弱环节,制定改进措施
- 渗透测试后评估:评估渗透测试发现的安全问题
示例:
{}
mysql_progress_tracker
异步操作进度跟踪,统一管理和监控所有后台任务的执行状态。
集成了实时进度更新、操作取消、详细状态查询、多操作类型支持等全方位进度管理能力。
支持备份、导出等长期运行操作的进度可视化和控制,增强用户体验和操作透明度。
主要特性:
- 统一进度管理:集中管理所有异步操作的进度状态
- 实时进度更新:提供实时的执行进度和状态信息
- 操作取消支持:支持取消正在进行的操作(需要操作支持)
- 详细状态查询:提供操作的详细信息、时间戳、持续时间等
- 多操作类型:支持备份、导出等多种操作类型的进度跟踪
- 性能指标:提供操作的性能统计和时间估算
- 批量操作:支持同时查看多个操作的进度状态
支持的操作类型:
- backup:数据库备份操作进度跟踪
- export:数据导出操作进度跟踪
- all:所有操作类型的进度跟踪(默认)
应用场景:
- 备份监控:实时监控数据库备份进度,及时发现问题
- 导出跟踪:跟踪大数据量导出操作的执行状态
- 批量操作管理:管理多个并发操作的进度和状态
- 运维监控:为运维人员提供操作进度可视化
- 用户体验:为用户提供操作进度的实时反馈
- 问题诊断:通过进度信息快速定位操作问题
示例:
列出所有活跃操作的基本进度信息
{
"action": "list"
}
查看备份操作的进度(详细信息)
{
"action": "list",
"operationType": "backup",
"detailLevel": "detailed"
}
获取特定操作的详细信息
{
"action": "get",
"trackerId": "backup_123456"
}
取消正在进行的导出操作
{
"action": "cancel",
"trackerId": "export_789012"
}
获取所有操作的进度汇总统计
{
"action": "summary"
}
查看包含已完成操作的详细列表
{
"action": "list",
"includeCompleted": true,
"detailLevel": "detailed"
}
监控特定类型的操作进度
{
"action": "list",
"operationType": "export",
"detailLevel": "detailed"
}
运维监控场景:定期检查系统状态
{
"action": "summary"
}
问题诊断:查看长时间运行的操作
{
"action": "list",
"detailLevel": "detailed"
}
mysql_optimize_memory
内存管理,整合系统级内存优化、备份任务内存管理、垃圾回收控制和详细的内存分析功能。
提供全面的内存压力监测、智能垃圾回收、内存泄漏检测和性能优化建议。
主要特性:
- 系统级内存监控:实时监测堆内存、RSS、外部内存使用情况
- 智能垃圾回收:支持强制GC执行,内存优化和效率分析
- 内存压力管理:自动检测内存压力水平,提供优化建议
- 备份操作优化:专门优化备份任务的内存使用和管理
- 内存泄漏检测:持续监控内存使用趋势,识别潜在泄漏
- 并发控制优化:动态调整任务并发数,平衡性能和内存使用
- 详细性能报告:提供内存使用历史、趋势分析和优化建议
支持的操作类型:
- status:查看当前内存状态和系统健康状况
- cleanup:执行基础内存清理,释放已完成任务的资源
- optimize:执行全面内存优化,包括GC和缓存清理
- configure:配置内存监控和并发控制参数
- report:生成详细的内存分析报告
- gc:专门执行垃圾回收操作
应用场景:
- 内存压力监控:实时监控系统内存使用,预防内存不足
- 性能优化:定期执行内存清理,提高系统响应速度
- 故障排查:分析内存泄漏,定位性能瓶颈
- 资源管理:优化备份和导出操作的内存使用
- 系统维护:定期内存优化,保持系统健康状态
- 容量规划:基于内存使用趋势制定扩容计划
示例:
查看当前内存状态
{
"action": "status"
}
执行基础内存清理
{
"action": "cleanup"
}
执行全面内存优化(包括强制GC)
{
"action": "optimize",
"forceGC": true
}
配置内存监控参数
{
"action": "configure",
"enableMonitoring": true,
"maxConcurrency": 3
}
生成详细内存分析报告
{
"action": "report",
"includeHistory": true
}
执行专门的垃圾回收
{
"action": "gc"
}
快速内存优化(不强制GC)
{
"action": "optimize",
"forceGC": false
}
内存压力监控场景
{
"action": "status"
}
定期维护任务
{
"action": "cleanup"
}
故障排查支持
{
"action": "report",
"includeHistory": true
}
mysql_manage_queue
任务队列管理,统一管理和监控所有异步操作(备份、导出、数据迁移等)的执行队列。
提供全面的队列控制能力,包括任务状态监控、并发控制、队列调度、任务取消和系统诊断。
集成了优先级调度、错误恢复、性能监控等高级特性,支持大规模并发任务处理。
主要特性:
- 统一队列管理:集中管理所有类型的异步任务队列
- 实时状态监控:提供队列状态、任务进度、性能指标的实时监控
- 并发控制优化:动态调整任务并发数,平衡系统负载
- 任务生命周期管理:完整的任务创建、执行、完成、取消生命周期
- 优先级调度:支持任务优先级调度,确保重要任务优先执行
- 错误恢复机制:自动处理失败任务的重试和错误恢复
- 详细诊断功能:提供队列健康状态分析和性能诊断
- 灵活过滤查询:支持按任务类型、状态等维度过滤和查询
支持的操作类型:
- status:查看队列状态和任务列表,支持详细信息展示和类型过滤
- pause:暂停队列,停止新任务执行,已运行任务继续完成
- resume:恢复队列,继续执行排队任务
- clear:清空队列,取消所有排队中的任务
- set_concurrency:设置最大并发任务数,控制系统负载
- cancel:取消指定的单个任务
- diagnostics:执行队列诊断,提供健康状态和优化建议
- get_task:获取单个任务的详细信息,包括执行时间和状态历史
应用场景:
- 生产环境监控:实时监控任务队列状态,确保系统稳定运行
- 负载均衡控制:动态调整并发数,应对不同的负载情况
- 任务调度管理:管理备份、导出等批量任务的执行顺序
- 故障排查诊断:快速定位队列问题和性能瓶颈
- 运维自动化:集成到运维脚本中进行自动化的队列管理
- 资源优化:根据系统资源情况调整任务执行策略
示例:
查看队列状态概览
{
"action": "status",
"showDetails": true
}
查看详细的队列状态(包含所有任务信息)
{
"action": "status",
"showDetails": true
}
查看特定类型的任务(仅备份任务)
{
"action": "status",
"filterType": "backup",
"showDetails": true
}
暂停队列处理
{
"action": "pause"
}
恢复队列处理
{
"action": "resume"
}
清空队列中的所有任务
{
"action": "clear"
}
设置最大并发任务数为5
{
"action": "set_concurrency",
"maxConcurrency": 5
}
取消指定的任务
{
"action": "cancel",
"taskId": "backup_123456"
}
执行队列诊断
{
"action": "diagnostics"
}
获取单个任务的详细信息
{
"action": "get_task",
"taskId": "export_789012"
}
生产环境监控场景
{
"action": "status",
"showDetails": true
}
紧急情况下的队列控制
{
"action": "pause"
}
然后清空队列
{
"action": "clear"
}
负载优化调整
{
"action": "set_concurrency",
"maxConcurrency": 3
}
故障排查支持
{
"action": "diagnostics"
}
mysql_manage_indexes
索引管理工具,提供企业级MySQL索引管理解决方案,提供完整的索引生命周期管理功能。 集成了索引创建、删除、优化分析等全方位索引管理能力。 支持多种索引类型,包括普通索引、唯一索引、主键索引、全文索引、空间索引。 适用于数据库管理员进行索引优化、性能调优等场景。
操作类型:
- create: 创建新索引
- drop: 删除索引
- analyze: 分析索引使用情况
- optimize: 优化索引结构
- list: 列出索引信息
示例:
// 创建普通索引
{
"action": "create",
"table_name": "users",
"index_name": "idx_users_email",
"columns": ["email"]
}
// 创建复合索引
{
"action": "create",
"table_name": "orders",
"index_name": "idx_orders_user_date",
"columns": ["user_id", "created_at"]
}
// 创建唯一索引
{
"action": "create",
"table_name": "products",
"index_name": "idx_products_sku",
"index_type": "UNIQUE",
"columns": ["sku"]
}
// 删除索引
{
"action": "drop",
"table_name": "users",
"index_name": "idx_users_email",
"if_exists": true
}
// 分析索引使用情况
{
"action": "analyze",
"table_name": "users"
}
// 优化索引结构
{
"action": "optimize",
"table_name": "users"
}
// 列出表的所有索引
{
"action": "list",
"table_name": "users"
}
// 列出数据库中所有表的索引
{
"action": "list"
}
mysql_manage_users
用户管理工具,提供企业级MySQL用户管理解决方案,提供完整的用户生命周期管理功能。 集成了用户创建、删除、权限授予和撤销等全方位用户管理能力。 支持安全密码验证、权限精细控制、用户审计追踪等企业级特性。 适用于数据库管理员进行用户权限管理、安全合规等场景。
操作类型:
- create: 创建新用户
- delete: 删除用户
- grant: 授予用户权限
- revoke: 撤销用户权限
- list: 列出所有用户
- show_grants: 显示用户权限
示例:
// 创建新用户
{
"action": "create",
"username": "newuser",
"password": "secure_password",
"host": "localhost"
}
// 删除用户
{
"action": "delete",
"username": "olduser",
"if_exists": true
}
// 授予权限
{
"action": "grant",
"username": "appuser",
"privileges": ["SELECT", "INSERT", "UPDATE"],
"database": "myapp",
"table": "users"
}
// 撤销权限
{
"action": "revoke",
"username": "appuser",
"privileges": ["DELETE"],
"database": "myapp"
}
// 列出所有用户
{
"action": "list"
}
// 显示用户权限
{
"action": "show_grants",
"username": "appuser"
}
mysql_replication_status
复制状态工具,提供企业级MySQL主从复制监控解决方案,提供全面的复制状态监控、延迟检测、错误诊断和配置查看功能。 支持主从架构的健康监控和故障排查,适用于生产环境的复制拓扑管理。
操作类型:
- status: 查看复制状态概览
- delay: 检测复制延迟
- diagnose: 诊断复制错误
- config: 查看复制配置
示例:
// 查看复制状态概览
{
"action": "status"
}
// 检测复制延迟
{
"action": "delay"
}
使用示例
📝 基础查询操作
# 连接到 Claude Desktop 并使用以下示例:
# 查询用户数据
{
"query": "SELECT id, name, email, created_at FROM users WHERE status = 'active' ORDER BY created_at DESC LIMIT 10",
"params": []
}
# 获取表结构
{
"table_name": "orders"
}
# 带参数的复杂连接查询
{
"query": "SELECT u.name, COUNT(o.id) as order_count, SUM(o.total) as total_spent FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.created_at > ? GROUP BY u.id HAVING order_count > 0 ORDER BY total_spent DESC",
"params": ["2023-01-01"]
}
🔄 CRUD操作
# 插入新用户
{
"table_name": "users",
"data": {
"name": "Alice Johnson",
"email": "alice@example.com",
"status": "active"
}
}
# 更新用户状态
{
"table_name": "users",
"data": {
"status": "inactive"
},
"where_clause": "email = 'john@example.com'"
}
# 删除用户
{
"table_name": "users",
"where_clause": "id = 123"
}
🔄 批量操作
# 批量事务示例
{
"queries": [
{"sql": "INSERT INTO users (name, email) VALUES (?, ?)", "params": ["Alice Johnson", "alice@example.com"]},
{"sql": "INSERT INTO profiles (user_id, bio) VALUES (LAST_INSERT_ID(), ?)", "params": ["Software Engineer"]},
{"sql": "UPDATE user_stats SET total_users = total_users + 1"}
]
}
# 批量插入示例
{
"table_name": "products",
"data": [
{"name": "Laptop Pro", "price": 1299.99, "category": "Electronics", "stock": 50},
{"name": "Wireless Mouse", "price": 29.99, "category": "Electronics", "stock": 200},
{"name": "Office Chair", "price": 199.99, "category": "Furniture", "stock": 25}
]
}
🛡️ 系统健康监控
# 获取全面的系统状态
{
"scope": "full",
"includeDetails": true
}
# 内存优化和分析
{
"action": "optimize",
"forceGC": true,
"includeHistory": true
}
# 队列管理
{
"action": "status",
"showDetails": true,
"filterType": "all"
}
# 进度跟踪
{
"action": "summary"
}
# 安全审计
{} # 无需参数
架构设计
🏗️ 核心组件架构
MySQLManager (中央引擎) - mysqlManager.ts
├── 配置管理层 - config.ts
│ ├── ConfigurationManager # 中央配置管理
│ ├── DatabaseConfig # 数据库连接配置
│ ├── SecurityConfig # 安全配置管理
│ └── CacheConfig # 缓存配置管理
├── 数据访问层
│ ├── ConnectionPool # 增强连接池管理 - connection.ts
│ │ ├── preCreateConnections() # 预创建连接
│ │ ├── performHealthCheck() # 健康检查
│ │ └── adjustPoolSize() # 动态调整池大小
│ └── SmartCache # 三级LRU缓存系统 - cache.ts
│ ├── SchemaCache # 表结构缓存 (128条目)
│ ├── TableExistsCache # 表存在性缓存 (64条目)
│ └── IndexCache # 索引信息缓存 (64条目)
├── 安全防护层
│ ├── SecurityValidator # 安全验证器 - security.ts
│ │ ├── validateInputComprehensive() # 全面输入验证
│ │ └── analyzeSecurityThreats() # 威胁分析
│ ├── RBACManager # 权限管理 - rbac.ts
│ │ ├── checkPermission() # 权限检查
│ │ └── assignRoleToUser() # 角色分配
│ ├── AdaptiveRateLimiter # 自适应速率限制 - rateLimit.ts
│ │ └── checkRateLimit() # 令牌桶算法限流
│ └── SecurityAuditor # 安全审计员 - security.ts
├── 监控分析层
│ ├── PerformanceManager # 性能管理器 - performanceManager.ts
│ │ ├── SlowQueryAnalysis # 慢查询分析
│ │ ├── IndexOptimization # 索引优化建议
│ │ └── QueryProfiling # 查询性能剖析
│ ├── MetricsManager # 指标管理器 - metrics.ts
│ │ ├── TimeSeriesMetrics # 时间序列指标
│ │ ├── PerformanceMetrics # 性能指标
│ │ └── recordQueryTime() # 查询时间记录
│ ├── MemoryMonitor # 内存监控 - monitor.ts
│ │ ├── getMemoryStats() # 内存使用统计
│ │ └── optimizeMemory() # 内存优化
│ ├── SystemMonitor # 系统监控 - monitor.ts
│ │ ├── collectSystemResources() # 系统资源收集
│ │ └── checkAlerts() # 告警检查
│ ├── ErrorHandler # 错误处理器 - errorHandler.ts
│ │ ├── safeError() # 安全错误处理
│ │ └── analyzeError() # 错误分析
│ └── SmartRetryStrategy # 智能重试策略 - retryStrategy.ts
├── 备份管理层
│ ├── MySQLBackupTool # 备份工具 - mysqlBackupTool.ts
│ │ ├── createBackup() # 多模式备份
│ │ └── createIncrementalBackup() # 增量备份
│ ├── MySQLImportTool # 导入工具 - mysqlImportTool.ts
│ │ ├── importData() # 多格式导入
│ │ └── validateImport() # 导入验证
│ └── DataExporter # 数据导出器 - mysqlBackupTool.ts
├── 系统管理工具 (index.ts中的工具)
│ ├── mysql_system_status # 系统状态检查
│ ├── mysql_analyze_error # 错误智能分析
│ ├── mysql_security_audit # 安全审计
│ ├── mysql_manage_indexes # 索引管理
│ ├── mysql_manage_users # 用户管理
│ ├── mysql_replication_status # 复制状态监控
│ ├── mysql_progress_tracker # 进度跟踪器
│ └── mysql_optimize_memory # 内存优化
└── 日志与工具层
├── StructuredLogger # 结构化日志器
├── Constants # 常量定义 - constants.ts
├── Types # 类型定义 - types.ts
├── CommonUtils # 通用工具 - utils/common.ts
└── CacheInvalidator # 缓存失效器 - utils/cacheInvalidator.ts
MySQLManager - 中央引擎
位于 src/mysqlManager.ts 的 MySQLManager 类是核心协调器,集成所有企业级数据库功能:
核心功能集成:
- 连接池管理: 增强型连接池 (
ConnectionPool),支持自动重连和健康检查 - 智能缓存: 三级LRU缓存系统 (
SmartCache),O(1)复杂度,支持TTL和自动失效 - 安全验证: 多层输入验证和SQL注入检测 (
SecurityValidator) - 权限控制: RBAC权限管理 (
RBACManager),细粒度权限验证 - 性能监控: 双层指标收集 (
MetricsManager),实时性能统计 - 错误处理: 智能错误分类和恢复建议 (
ErrorHandler) - 重试机制: 自适应重试策略 (
SmartRetryStrategy),指数退避算法
高级功能:
- 内存优化: 压力感知的内存管理,自动垃圾回收
- 批处理支持: 事务安全的批量操作,支持并行处理
- 审计日志: 完整的操作审计和安全事件记录
🔄 数据流优化
- 请求接收: MCP服务器 (
index.ts) 接收工具调用请求 - 权限验证: 通过RBAC系统检查用户权限
- 安全检查: 多层安全验证,包括SQL注入检测和输入清洗
- 缓存查询: 三级缓存系统 (Schema/TableExists/Index) 快速获取数据
- 数据库操作: 智能重试策略执行异步查询,支持事务安全
- 性能监控: 实时收集查询指标,监控系统资源使用
- 结果处理: 高级内存管理和流式结果处理
- 安全响应: 敏感数据脱敏和安全响应生成
- 日志记录: 结构化日志记录和审计追踪
- 资源清理: 自动释放连接,回池管理
性能指标收集点:
- 查询响应时间统计
- 缓存命中率监控
- 连接池使用情况
- 内存压力监控
- 错误分类统计
性能监控
🎯 关键性能指标 (KPIs)
通过 mysql_system_status、mysql_optimize_memory 和其他专业工具进行全面性能监控。
- 查询性能: 平均查询时间、总查询数、慢查询数和智能错误分类
- 缓存效率: 多层缓存统计(schema、tableExists、index),支持命中率和智能失效
- 连接池状态: 健康监控,支持超时保护和连接生命周期跟踪
- 系统资源: 实时CPU、内存和事件循环延迟监控
- 内存分析: 内存使用趋势、泄漏检测和垃圾回收统计
- 错误分类: 智能分类,附带恢复建议和诊断报告
高级监控功能
- 线性插值用于准确的百分位数计算(P95、P99)
- 增强的连接池监控,支持等待时间跟踪和健康检查
- 慢查询检测,阈值可配置(默认1秒)
- 缓存效率指标(目标>80%命中率),支持智能失效和内存压力自适应
- 错误率,支持智能分类和上下文恢复建议
- 系统资源使用情况监控(CPU、内存、事件循环延迟、磁盘I/O)
- 内存压力检测使用线性回归,支持自动垃圾回收触发
- 内存泄漏模式检测,支持趋势分析和自动警报
- 时间序列数据保留,窗口大小可配置,支持数据老化
- 实时警报系统,支持结构化回调和通知渠道
- 性能回归检测,支持历史比较和异常检测
📈 性能指标示例 (JSON输出)
{
"performance_metrics": {
"performance": {
"queryCount": 50,
"totalQueryTime": 2.5,
"errorCount": 1,
"slowQueryCount": 3,
"avg_query_time": 0.05,
"cache_hit_rate": 0.8
},
"cache_stats": {
"schema_cache": {
"size": 10,
"max_size": 100,
"hit_count": 40,
"miss_count": 10,
"hit_rate": 0.8,
"ttl": 300
}
}
},
"connection_pool_status": {
"status": "Healthy",
"totalConnections": 10,
"idleConnections": 8,
"waitingConnections": 0
}
}
缓存策略
🧠 高级多层缓存架构
系统实现了企业级、多层级的智能缓存系统,集成了先进的内存管理和性能优化功能:
1. 分层缓存架构 (L1/L2)
SmartCache 类实现了复杂的分层缓存架构,优化性能和内存利用率:
L1 缓存 (热数据 - 基于Map):
- 用途: 存储频繁访问的数据,提供O(1)访问时间
- 实现: 高性能Map数据结构,支持自动LRU驱逐算法
- 大小: 可配置(默认:总缓存大小的80%)
- TTL支持: 每个条目独立TTL,支持自动过期
- 性能: 亚毫秒级访问时间,适用于高频访问数据
L2 缓存 (温数据 - 基于Object):
- 用途: 存储次频繁访问的数据作为二级缓存
- 实现: Object基础存储,支持可配置的驱逐策略
- 大小: 可配置(默认:总缓存大小的20%)
- 提升机制: 基于访问模式自动从L2提升到L1
- 持久化: 支持更长的TTL值,提高缓存利用率
2. 高级缓存特性
动态TTL调整:
- 访问模式分析: 监控访问频率和模式
- 自动TTL扩展: 自动延长频繁访问条目的TTL
- 可配置参数: 可调节的灵敏度和扩展系数
- 性能影响: 减少热门数据的缓存未命中率
WeakMap内存保护:
- 内存泄漏防护: 使用WeakMap实现对象引用管理
- 自动垃圾回收: 对象不再被引用时自动清理
- 引用管理: 支持WeakRef的高级内存管理
- 零内存开销: 缓存元数据不产生额外内存成本
智能预取系统:
- 模式识别: 分析访问模式预测未来需求
- 主动加载: 在请求前预加载相关数据
- 可配置阈值: 可调节的预取触发条件和限制
- 性能提升: 减少可预测访问模式的延迟
3. 缓存预热系统
- 启动预加载: 系统启动时自动加载频繁访问的数据
- 进度跟踪: 实时进度监控,支持完成时间估算
- 错误处理: 完善的错误处理和回退策略
- 性能指标: 详细的预热性能统计数据
🏗️ 内存压力感知缓存管理
系统与集中的MemoryPressureManager深度集成,实现智能缓存大小调整:
自动缓存调整
// 配置L2缓存
configureL2Cache(
enabled: boolean,
config?: {
l1Size: number; // L1缓存大小
l1TTL: number; // L1缓存TTL
l2Size: number; // L2缓存大小
l2TTL: number; // L2缓存TTL
}
): void
// 基于内存压力调整缓存大小
adjustForMemoryPressure(pressureLevel: number): void {
const scaleFactor = Math.max(0.1, 1 - pressureLevel);
this.dynamic_max_size = Math.max(1, Math.floor(this.max_size * scaleFactor));
while (this.cache.size > this.dynamic_max_size) {
this.evictLRU();
}
}
智能驱逐策略
- 优先级驱逐: LRU结合访问频率评分算法
- 分层清理: L1和L2缓存采用不同的驱逐策略
- 内存压力响应: 高压力下的主动驱逐机制
- 热数据保护: 频繁访问数据在清理时得到保护
📊 高级缓存性能监控
全面的缓存性能分析通过增强的监控系统实现:
{
"cache_performance": {
"global_hit_rate": 0.923,
"tier_efficiency": {
"l1_hit_rate": 0.945,
"l2_hit_rate": 0.678,
"promotion_rate": 0.234
},
"memory_usage": {
"l1_size": "8.2 MB",
"l2_size": "4.1 MB",
"total_memory": "12.3 MB",
"compression_ratio": 0.85
},
"advanced_metrics": {
"prefetch_accuracy": 0.789,
"ttl_adjustment_rate": 0.156,
"weakmap_protection": 0.923,
"eviction_efficiency": 0.867
}
},
"region_stats": {
"SCHEMA": {
"entries_count": 45,
"max_entries": 128,
"hit_rate": 0.956,
"memory_usage": "2.3 MB",
"avg_access_time": "0.03ms",
"prefetch_count": 23,
"ttl_extensions": 156
},
"TABLE_EXISTS": {
"entries_count": 78,
"max_entries": 64,
"hit_rate": 0.912,
"avg_lookup_time": "0.05ms",
"weakmap_protected": true
},
"INDEX": {
"entries_count": 23,
"max_entries": 64,
"hit_rate": 0.885,
"last_refresh": "2025-09-03T08:26:00Z",
"warm_up_time": "45ms"
}
}
}
⚡ 企业级缓存优化特性
缓存预热系统
- 智能预加载: 基于历史访问模式的最优预加载策略
- 优先级加载: 高价值数据优先加载,提供即时性能提升
- 后台处理: 非阻塞预热操作,不影响系统启动时间
- 进度监控: 实时进度跟踪,支持完成回调机制
高级内存管理
- WeakMap集成: 自动内存泄漏防护,使用WeakMap/WeakRef
- 引用跟踪: 智能引用计数机制实现缓存条目管理
- 自动清理: 零配置内存管理,自动资源释放
- 内存压力响应: 基于系统内存状态的动态调整
性能优化
- 预取智能: 机器学习驱动的预取预测算法
- TTL自适应: 基于访问模式的动态TTL调整
- 批量操作: 针对高吞吐量场景的优化批量操作
- 压缩支持: 内存受限环境的可选数据压缩功能
🔍 高级缓存管理工具
缓存分析与优化
// 获取详细缓存分析
const analysis = cache.getDetailedAnalysis();
// 分析访问模式
const patterns = cache.analyzeAccessPatterns();
// 获取优化建议
const recommendations = cache.getOptimizationRecommendations();
// 执行智能清理
const cleanupResult = cache.performIntelligentCleanup();
内存压力集成
// 订阅内存压力变化
memoryPressureManager.subscribe((pressure: number) => {
cache.adjustForMemoryPressure(pressure);
});
// 获取缓存健康状态
const health = cache.getHealthStatus();
console.log(`缓存健康度: ${health.score}/100`);
🛠️ 缓存配置示例
高性能配置
# 高性能环境的环境变量配置
SMART_CACHE_L1_SIZE=256
SMART_CACHE_L2_SIZE=128
CACHE_TTL_BASE=600
CACHE_TTL_MAX=3600
PREFETCH_ENABLED=true
PREFETCH_THRESHOLD=0.7
TTL_DYNAMIC_ADJUSTMENT=true
WEAKMAP_PROTECTION=true
内存受限配置
# 内存受限环境的环境变量配置
SMART_CACHE_L1_SIZE=64
SMART_CACHE_L2_SIZE=32
CACHE_TTL_BASE=300
CACHE_COMPRESSION=true
COMPRESSION_LEVEL=6
AGGRESSIVE_EVICTION=true
WEAKMAP_PROTECTION=true
这个高级缓存架构提供企业级的性能、智能的内存管理和全面的监控能力,确保数据库操作的最佳效率。
安全特性
🔒 多层安全架构
输入验证与清洗
- 空字节过滤: 防止空字节注入攻击
- 长度验证: 可配置的最大查询长度(默认:10000字符)
- 字符编码: UTF-8验证和清洗
- 参数绑定: 所有查询使用预处理语句
- 可配置安全级别: 三级验证(STRICT/MODERATE/BASIC)
🛡️ 高级SQL注入检测(20+模式)
系统实现了全面的SQL注入检测,包含20多种具体的模式,支持实时威胁分析:
危险操作检测(6种模式):
- 文件系统访问尝试(LOAD_FILE、INTO OUTFILE、INTO DUMPFILE)
- 命令执行尝试(SYSTEM、EXEC、SHELL、xp_cmdshell)
- 信息泄露(UNION SELECT with INFORMATION_SCHEMA)
- 带破坏性操作的堆叠查询(DROP、DELETE、TRUNCATE、ALTER)
- 基于时间的攻击和DoS尝试(BENCHMARK、SLEEP、WAITFOR)
- 系统变量访问(@@version、@@datadir、@@basedir、@@tmpdir)
SQL注入模式检测(15+种模式):
- 基本的OR/AND注入(带引号和比较操作符)
- 联合查询注入(UNION SELECT变体)
- 认证绕过模式(' OR '1'='1、" OR "1"="1)
- 基于注释的规避(--、/* */、#)
- 时间延迟攻击(SLEEP、BENCHMARK、WAITFOR、pg_sleep、dbms_pipe.receive_message)
- 基于错误的注入(CAST、CONVERT、EXTRACTVALUE、UPDATEXML)
- 数学错误注入(EXP、POW与位运算)
- 堆叠查询注入(; SELECT、; INSERT等)
- 函数调用注入(CHAR、ASCII、ORD、HEX、UNHEX、CONCAT、GROUP_CONCAT)
- 系统信息收集(USER、VERSION、DATABASE、SCHEMA函数)
- 逻辑运算符绕过(||、&&、^^)
- 经典注入模式(带数字、字符串和NULL值)
- 增强的危险操作和注入尝试检测
🎯 多级安全验证
- 严格模式: 最高安全性,阻止所有可疑模式(推荐用于生产环境)
- 中等模式: 平衡安全性与生产力(默认设置)
- 基础模式: 用于开发环境的最小验证
🚨 实时威胁分析
{
"security_analysis": {
"threat_level": "LOW",
"detected_patterns": [],
"risk_score": 0.1,
"recommendations": [
"输入验证通过了所有安全检查"
],
"blocked_attempts": 0,
"validation_time": "0.8ms"
}
}
🔐 全面安全功能
- 速率限制: 自适应令牌桶算法,支持系统负载感知(60秒窗口,默认100请求/分钟)
- 查询类型限制: 基于白名单的查询类型过滤,支持可配置的允许类型
- 结果集限制: 防止通过大结果集进行数据泄露(默认1000行)
- 凭据保护: 日志和诊断中自动脱敏
- 审计追踪: 安全事件的全面记录,支持脱敏输出
- 连接安全: 支持SSL/TLS和证书验证
- 查询超时保护: 可配置的查询执行超时,防止资源耗尽
- 危险操作检测: 增强的DROP、DELETE、UPDATE操作检测(无WHERE子句)
- 模式检测: 实时威胁检测,支持风险评估和恢复建议
内存管理
🧠 企业级内存管理系统
系统实现了全面的内存管理解决方案,集成了多种内存优化技术和智能监控功能,支持自动检测和优化内存使用模式:
内存监控核心功能
- 实时多维度监控: 全面跟踪RSS、堆内存、外部内存使用情况,提供高精度实时监控
- 智能泄漏检测: 采用线性回归算法的先进趋势分析,自动识别内存泄漏模式和异常增长趋势
- 动态压力评估: 基于0-1范围的智能压力级别计算,支持多阈值优化触发机制
- 垃圾回收统计: 详细跟踪GC事件统计、内存释放量和时间戳,支持性能分析
- 历史数据存储: 可配置的历史内存数据保留,支持趋势分析和预测
- 自动泄漏怀疑识别: 基于机器学习算法的实时内存泄漏检测,提供智能告警
- 综合指标体系: 集成的多指标监控面板,覆盖所有关键内存参数
内存优化工具集
- mysql_optimize_memory工具: 企业级内存优化集成,支持状态查看、清理优化、配置管理和详细报告
- 智能垃圾回收: 支持强制GC执行,结合内存压力感知的自动触发机制
- 压力自适应调整: 基于使用模式的动态内存调整算法,优化缓存和资源分配
- 内存清理策略: 全面的内存清理机制,包括缓存清理、连接释放和资源回收
- 性能影响评估: 前后对比分析,提供内存优化效果的详细统计报告
内存安全防护机制
- 高内存压力告警: 支持结构化告警回调的多级内存压力检测系统
- 自动优化防护: 内存压力下的自动防护机制,防止内存溢出和系统崩溃
- 异常检测反馈: 实时内存异常检测,实现快速定位和修复
- 历史趋势分析: 基于历史数据的内存使用趋势预测和优化建议
内存管理架构特性
- 无缝系统集成: 与系统诊断和性能监控深度集成,提供统一监控界面
- 释放嫌疑检测: 基于统计分析的内存释放模式检测和优化建议
- 缓存协同优化: 与三级缓存系统协同工作,实现内存使用最优化
- 连接池内存管理: 智能连接池内存管理,防止连接对象内存泄漏
- 垃圾回收调度: 基于系统负载的智能GC调度算法,平衡性能和内存使用
📊 内存分析示例
{
"memory_analysis": {
"current_stats": {
"heap_used": "45.2 MB",
"heap_total": "64.0 MB",
"rss": "85.7 MB",
"external": "2.1 MB",
"peak_heap": "52.1 MB",
"average_heap": "42.8 MB",
"trend": "stable"
},
"optimization": {
"canOptimize": true,
"potentialSavings": "3.2 MB",
"lastOptimization": 1623456789000,
"recommendedAction": "内存使用稳定,无需立即操作"
},
"gc_stats": {
"triggered": 5,
"last_gc": "2023-06-15T10:30:45.123Z",
"total_freed": "12.5 MB",
"last_gc_freed": "2.3 MB"
},
"pressure_level": 0.42,
"leak_suspicions": 0,
"historical_data_points": 100
}
}
故障排除
🔧 常见问题解决
-
数据库连接失败:
Error: connect ECONNREFUSED- 解决方案: 确认MySQL服务正在运行;检查
.env文件中的MYSQL_HOST和MYSQL_PORT是否正确;检查防火墙设置。 - 补充: 确保MySQL接受来自您的主机的连接;验证
.env文件中的凭据;检查MySQL错误日志获取详细信息。
- 解决方案: 确认MySQL服务正在运行;检查
-
缓存命中率低:
- 症状:
mysql_system_status显示缓存hit_rate低于 60%。 - 解决方案: 适当增大
SCHEMA_CACHE_SIZE等缓存相关环境变量的值;延长CACHE_TTL的时间。 - 补充: 使用
mysql_system_status分析查询模式;考虑为频繁访问的表实现缓存预热策略。
- 症状:
-
连接池耗尽:
Error: Pool is closed.或Error: Timeout acquiring connection- 症状: 应用在高并发下无响应或报错。
- 解决方案: 增大
MYSQL_CONNECTION_LIMIT的值;检查代码中是否有未释放的连接(本项目已处理好)。 - 补充: 使用
mysql_system_status监控连接池统计信息;检查查询超时设置;考虑为高频操作实现请求批处理。
-
频率限制触发:
Error: Rate limit exceeded- 解决方案: 优化客户端调用逻辑,降低请求频率;适当增大
RATE_LIMIT_MAX或RATE_LIMIT_WINDOW。 - 补充: 在客户端应用程序中实现指数退避;使用批处理操作减少请求数量;考虑升级到更高性能的层级。
- 解决方案: 优化客户端调用逻辑,降低请求频率;适当增大
-
高内存使用:
- 症状: Node.js进程消耗过多内存
- 解决方案: 使用
mysql_optimize_memory工具触发垃圾回收;减少缓存大小;使用mysql_system_status监控内存趋势。 - 补充: 使用
NODE_OPTIONS="--expose-gc"启用自动垃圾回收;检查缓存配置参数;实现内存压力监控。
-
慢查询性能:
- 症状: 查询耗时超过预期,
mysql_system_status显示高平均查询时间。 - 解决方案: 使用
mysql_system_status分析慢查询;为表添加适当的索引;优化查询结构。 - 补充: 检查MySQL慢查询日志;考虑查询结果缓存;为大数据集实现分页。
- 症状: 查询耗时超过预期,
-
安全验证失败:
- 症状:
Error: Query validation failed或被阻止的查询 - 解决方案: 根据安全规则检查查询模式;如果合适,调整安全级别(STRICT/MODERATE/BASIC)。
- 补充: 检查查询长度限制;验证允许的查询类型;检查诊断中的注入模式检测结果。
- 症状:
-
SSL连接问题:
- 症状:
Error: SSL connection failed或证书验证错误 - 解决方案: 验证
.env文件中的SSL配置;确保SSL证书有效且配置正确。 - 补充: 检查MySQL SSL设置;验证证书路径和权限;考虑在开发环境中使用
MYSQL_SSL=false。
- 症状:
诊断工具
- 使用
mysql_system_status进行全面的系统健康分析 - 使用
mysql_optimize_memory进行内存分析和优化 - 使用
mysql_analyze_error进行智能错误诊断 - 使用
mysql_progress_tracker监控异步操作进度 - 使用
mysql_manage_queue管理任务队列状态 - 使用
npx tsc --noEmit监控 TypeScript 编译错误
性能调优
⚡ 配置模板
三个预定义的配置模板:
企业环境 (高并发)
- 高并发(50个连接,512缓存大小)
中等规模应用 (平衡)
- 平衡(20个连接,128缓存大小)
资源受限环境 (低内存)
- 低内存占用(5个连接,32缓存大小)
请参阅 .env.example 获取包含所有可用选项的完整配置示例。
开发指南
🏗️ 架构原则
- 性能优先: 所有设计决策优先考虑性能影响。
- 安全第一: 多层安全验证,永不信任用户输入。
- 可观测性: 全面的监控和诊断能力。
- 配置驱动: 通过环境变量实现灵活配置。
- 优雅降级: 缓存或监控等非核心功能失败不影响核心数据库操作。
� 贡献指南
开发环境命令
# 安装所有依赖
npm install
# 复制环境模板并配置
cp .env.example .env
# 编译和运行服务器
npm run build
npm start
# 或者使用 ts-node 直接运行进行开发
npm run dev
# 代码格式化和检查
npm run lint
npm run lint:fix
# 类型检查
npx tsc --noEmit
# 测试
npm test
npm run test:unit
npm run test:integration
npm run test:watch
npm run test:coverage
# 可选的性能依赖
# 启用垃圾回收监控 (使用 --expose-gc 标志运行)
node --expose-gc dist/index.js
# 用于增强调试的开发模式
npm run dev -- --expose-gc
# 替代方案: 设置环境变量用于内存监控
export NODE_OPTIONS="--expose-gc"
TypeScript 最佳实践
- 启用严格类型检查,包括
noImplicitAny和strictNullChecks - 使用 Zod 模式进行 MCP 工具参数的运行时验证
- 利用联合类型和类型守卫进行健壮的错误处理
- 使用 TypeScript 的 Promise 类型实现适当的 async/await 模式
- 为缓存实现和数据库结果处理使用泛型类型
错误处理
- MySQLErrorClassifier: 智能错误分类,附带上下文恢复建议和预防措施
- ErrorHandler: 安全错误转换,敏感信息屏蔽和安全事件记录
- MySQL 错误按错误代码分类,基于错误类别和严重性的智能重试逻辑
- 安全事件记录,输出已清理(凭据屏蔽)和结构化审计追踪
- 全面的诊断报告,包含可能的原因、恢复策略和预防措施
- 使用自定义 MySQLMCPError 类和结构化接口的类型安全错误处理
- 自动错误恢复,支持可配置回退策略
资源管理
- 连接池自动管理 MySQL 连接
- 在整个过程中使用适当的 async/await 模式进行清理
- 通过信号处理程序实现优雅关闭
- 退出时缓存清理和内存管理
线程安全
- 使用 async/await 模式进行基于事件循环的并发,实现非阻塞操作
- 使用 UUID 进行会话基础的并发操作跟踪
- 利用 JavaScript 的单线程特性与异步处理的无锁设计
- 对共享资源(缓存、指标、限速器)的原子操作
- 使用 setInterval/setTimeout 独立运行后台监控任务
- 具有线程安全访问模式的连接池管理
日志和调试
要启用调试日志,请设置 LOG_LEVEL 环境变量:
# 在 .env 文件或环境中设置
LOG_LEVEL=DEBUG
在开发过程中实时查看日志:
# 在一个终端中运行服务器
npm run dev
# 在另一个终端中,如果记录到文件
# (注意: TypeScript 版本可能默认不记录到文件)
贡献流程
- 遵循当前代码风格。
- 为新功能添加对应的单元测试或集成测试。
- 如果添加或修改了工具、配置,请更新本文档。
- 确保所有测试和代码检查通过后再提交拉取请求。
许可证
本项目采用 MIT 许可证。