# 现有 MySQL 接入说明 ## 推荐方式 先创建只读账号: ```sql CREATE USER 'company_ai_ro'@'%' IDENTIFIED BY 'strong_password'; GRANT SELECT ON existing_project_system.* TO 'company_ai_ro'@'%'; FLUSH PRIVILEGES; ``` 配置: ```text LEGACY_DATABASE_URL=mysql+pymysql://company_ai_ro:strong_password@host:3306/existing_project_system?charset=utf8mb4 ``` ## 表结构探查 ```text GET /api/v1/integrations/mysql/tables GET /api/v1/integrations/mysql/tables/{table_name} ``` ## 只读查询 ```json { "sql": "SELECT id, name, status FROM projects WHERE status != :status", "params": {"status": "closed"}, "limit": 100 } ``` 系统会拒绝: ```text INSERT UPDATE DELETE DROP ALTER TRUNCATE CREATE ``` ## 项目同步 预览同步: ```text POST /api/v1/integrations/mysql/projects/sync ``` ```json { "dry_run": true, "limit": 100, "field_map": { "name": "project_name", "owner": "manager_name", "status": "project_status", "progress_percent": "progress", "budget_amount": "budget", "actual_amount": "actual_cost" } } ``` 确认无误后正式同步: ```json { "dry_run": false, "limit": 100, "actor": "admin" } ``` 同步只写入本系统内部 `projects` 表,不写回原项目管理系统。 ## 写回策略 第一阶段不要写回。 第二阶段如果必须写回,优先走原项目管理系统 API;没有 API 时,再做受控写回,并必须包含: - 权限校验 - 参数校验 - 审批单号 - 事务 - 审计日志 - 回滚方案